首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MvcContrib CheckBoxList

MvcContrib CheckBoxList
EN

Stack Overflow用户
提问于 2010-05-10 05:52:24
回答 1查看 1K关注 0票数 3

也许有人可以解释这种行为:

当我的页面第一次加载时,我使用的是最新版本的CheckBoxList --我只是返回我的视图。

代码语言:javascript
复制
return View(Product.GetProduct(productId)); 

一切看起来都很好。所有成功填充的html简单控件,包括checkboxlist:

代码语言:javascript
复制
<%= this.CheckBoxList(model => model.Product.Statuses)
    .Options(Model.Statuses, model => model.Id, model => model.Name)
    .ItemFormat("{0}<br />")
%>

因此,我在这个表单上有几个按钮,例如按钮“Search”()。我可以通过productId搜索并显示它,如果发现任何东西。因此,我将productId传递给我的控制器,此控制器返回视图的方式与第一次相同:

代码语言:javascript
复制
return View(Product.GetProduct(productId))

顺便说一句,我使用的逻辑是相同的:相同的视图,相同的控制器,相同的动作…。没什么新鲜事。但在这种情况下,我得到了一条错误消息:

字符串不能识别为有效的布尔值。描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。

异常详细信息: System.FormatException: String不能被识别为有效的布尔值。

源错误:

代码语言:javascript
复制
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>   

我发现,当第一次和之后加载视图时,如果没有选中所有复选框,我将单击“搜索”--所有检查都进行得很顺利,但当选中任何复选框时,我将单击“搜索”,我将得到此错误。

我需要帮助。有什么好主意吗?

EN

回答 1

Stack Overflow用户

发布于 2010-11-19 20:46:57

我相信CheckBoxList中有一个bug,所以当它验证列表时,它需要复选框的值为布尔可转换字符串("false","true")。

因此,在您的示例中,如果您将模型=> model.id改为=> "true“,您会发现您不会得到错误:

代码语言:javascript
复制
 <%= this.CheckBoxList(model => model.Product.Statuses).Options(Model.Statuses, model => "true", model => model.Name).ItemFormat("{0}<br />")%>

但这不是你想要的。我的解决办法是,当CheckBoxList无效时,从ModelState中删除ModelState元素(在您的例子中是model.Product.Statuses)。

您需要在model.Product.Statuses中为ModelState找到相应的键并删除它。在我的案例中,我使用了以下片段。您需要更改模型和属性。

代码语言:javascript
复制
if (!ModelState.IsValid)
{    
  ModelState.Remove(PropertyHelper<EmailModel>.GetProperty(x => x.Attachments).Name);
  ...

我正在使用PropertyHelper form How to get the PropertyInfo of a specific property?

另外,我还在mvccont肋骨问题跟踪器:http://mvccontrib.codeplex.com/workitem/7071中找到了这个相关链接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2800584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档