可能有人可以解释这种行为:
我正在使用最新版本的 MvcContrib 中的 CheckBoxList 当我的页面第一次加载时 - 我只是返回我的视图
return View(Product.GetProduct(productId));
一切似乎都很好。所有 html 简单控件均已成功填充,包括复选框列表:
<%= this.CheckBoxList(model => model.Product.Statuses)
.Options(Model.Statuses, model => model.Id, model => model.Name)
.ItemFormat("{0}<br />")
%>
所以,我在这个表单上有几个按钮,例如按钮“搜索”()。如果找到任何东西,我可以按 productId 搜索并显示它。因此,我将 productId 传递给我的控制器,并且该控制器以与第一次相同的方式返回视图:
return View(Product.GetProduct(productId))
顺便说一句,我使用的是相同的逻辑 - 都是一样的:相同的视图、相同的控制器、相同的操作……没有什么新鲜事。但在那种情况下,我收到了这个错误信息:
字符串未被识别为有效的布尔值。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.FormatException:字符串未被识别为有效的布尔值。
源错误:
Line 268: <labe**strong text**l for="group<%=item.Value%>"><%=item.Text%></label><br />
Line 269: <% } %>--%>
Line 270: <%= this.CheckBoxList(model => model.Product.Statuses).Options(Model.Statuses, model => model.Id, model => model.Name).ItemFormat("{0}<br />")%>
Line 271: </div>
Line 272: </div>
我发现,当第一次和之后加载视图时,如果所有复选框未选中,我都在单击搜索 - 一切都很好,但是当检查任何复选框时,我正在单击搜索 - 我会遇到此错误。
我需要帮助。有什么好主意吗?