【问题标题】:String was not recognized as a valid Boolean checkboxes on a view字符串未被识别为视图上的有效布尔复选框
【发布时间】:2019-01-15 19:42:01
【问题描述】:

我已经浏览过很多关于这个错误的帖子。我有一个显示在表格中的项目的动态列表,每一行都有一个复选框,我可以检查该复选框是否删除该行。我的老板和我自己都无法弄清楚为什么我们会在这条线上出现这个错误。我已经注释掉了发布操作结果中的所有代码,因此每次都会有相同的数据进入视图。

<td>@Html.CheckBox("LogsToDelete[" + i + "]", false, new { @value = log.ID, @class = "checkbox" })</td>

我在每个循环期间递增“i”以获得每个复选框的唯一字符串名称。出于某种原因,它不喜欢这样。如果我将“i”更改为 4 或 5 或(任何数字)页面重新加载正常。但是使用“i”会引发此错误。我什至尝试在此行之前构建该部分,然后将我的临时变量粘贴在其中,但我仍然得到相同的错误字符串-> bool 错误。

string temp = "LogsToDelete[" + i.ToString() + "]";

【问题讨论】:

  • 尝试 LogsToDelete[i]
  • 解决此问题的关键是显示您在使用索引分配时遇到的错误。 LogsToDelete 集合有什么类型(我假设 IEnumerable/List 的东西)?
  • NicoRiff;感谢您的答复。我不希望 'i' 是静态的,因为这就是使每个复选框动态具有新名称的原因。
  • tetsuya,感谢您的回复。这是定义: public List LogsToDelete { get;放; }
  • Tetsuys:我解析这个列表以删除所需的记录;但是这个功能很完美。当它返回时,我得到了错误。

标签: c# razor


【解决方案1】:

@Html.CheckBoxFor(m => m.LogsToDelete[i].Checked, new { @class= "checkbox" }) @Html.HiddenFor(m => m.LogsToDelete[i].LogID)

我最终做了一个包含两个项目的课程;一个 int 表示要删除的项目的 ID,一个 bool 用于存储复选框的 .checked 值。在页面加载之前,我列出了我的“logsToDelete”对象。然后使用它来确定要在帖子中删除哪些日志。 多谢你们。

【讨论】:

    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 2016-09-13
    • 2022-01-25
    • 2016-05-09
    • 2017-09-01
    • 2017-01-03
    • 1970-01-01
    相关资源
    最近更新 更多