我有一个页面,其中列出了名为 TimeRange1、TimeRange2.... TimeRange7 的复选框,并在 for 循环中生成它们,如下所示:
<% for (int currentDay = 1; currentDay <= 7; currentDay++)
......<%= Html.CheckBox("TimeRange" + currentDay.ToString(), false)%>
工作正常,直到我发布表单,然后我得到一个“字符串未被识别为有效的 bool 字符串”。
显然问题是我连接了复选框的名称。
有没有一些巧妙的方法来解决这个问题?我需要将它们命名为 1-7。这就像一个大时间表,您可以在其中选择应该可用的时间。
最佳答案
在没有帮助的情况下尝试:
<% for (int currentDay = 1; currentDay <= 7; currentDay++) { %>
<input type="checkbox" name="TimeRange<%= currentDay.ToString() %>" />
<% } %>
Html Helpers 从以下位置获取值:
ViewData.ModelState["controlName"].Value.RawValue
. value
传递给 HTML 帮助器方法的参数。 除了复选框之外,它们还生成一个隐藏的输入字段。因此,根据上下文,有时您可能会得到如下标记:
<input type="checkbox" name="TimeRange1" value="SomeValue, false" />
当您发布表单时,数据绑定(bind)器将无法将值转换为 bool 类型。
关于asp.net-mvc - 该字符串未被识别为有效的 bool 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824797/