asp.net-mvc - 该字符串未被识别为有效的 bool 字符串

标签 asp.net-mvc

我有一个页面,其中列出了名为 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/

    相关文章:

    c# - 使用 Asp.net Identity 删除角色

    asp.net - ASP .NET MVC 在工作期间进行身份验证和保持用户身份验证的最佳实践

    asp.net-mvc - 缓存 list 与 ASP.NET MVC 下载正确,但站点仍然无法离线使用

    jquery - 通过ajax将一张图片替换为另一张图片使其瞬间消失

    asp.net-mvc - Asp.Net MVC 从 View 中调用另一个 Controller

    c# - 我可以先对数据库使用覆盖 OnModelCreating 方法吗

    asp.net-mvc - 模型绑定(bind)程序无法处理 double.MAX 字符串表示形式返回 double

    asp.net-mvc - 我如何使用新的 Phil 的 routedebugger

    asp.net - 为什么我的自定义 404 错误处理程序在部署到 Web 服务器后不起作用

    c# - LINQ to Entities 无法识别方法 'System.Threading.Tasks.Task`