求解asp.net mvc中的一个html.checkbox的问题

personball 2013-04-02 04:13:48
复现步骤:
1.vs2010建立一个mvc3.0的网站项目(含示例代码)
2.编辑注册页面视图(Account/Register),在注册按钮上方,添加以下代码
 <div class="editor-field">
@foreach (SelectListItem item in (List<SelectListItem>)ViewData["CityList"])
{
@Html.CheckBox("SomeParas", item.Selected, new { value=item.Value})
@Html.Label(item.Text);
}
</div>

3.在Account控制器中,添加
protected void BindCheckbox(RegisterModel model)
{
List<SelectListItem> cityselectList = new List<SelectListItem>();
cityselectList.Add(new SelectListItem { Text = "所有", Value = "0", Selected = false });
cityselectList.Add(new SelectListItem { Text = "宁波", Value = "88", Selected = false });
ViewData["CityList"] = cityselectList;
}

4.修改Account中的两个Register方法为
public ActionResult Register()
{
BindCheckbox(null);
return View();
}
[HttpPost]
public ActionResult Register(RegisterModel model,string[] SomeParas)
{
//if (ModelState.IsValid)
//{
// // 尝试注册用户
// MembershipCreateStatus createStatus;
// Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

// if (createStatus == MembershipCreateStatus.Success)
// {
// FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
// return RedirectToAction("Index", "Home");
// }
// else
// {
// ModelState.AddModelError("", ErrorCodeToString(createStatus));
// }
//}
ModelState.AddModelError("UserName","sth wrong");
BindCheckbox(model);
// 如果我们进行到这一步时某个地方出错,则重新显示表单
return View(model);
}


调试,并尝试进行注册。

报错是针对: @Html.CheckBox("SomeParas", item.Selected, new { value=item.Value}) 这句的,错误是:该字符串未被识别为有效的布尔值。

求解惑,为什么会出现这个错误?
...全文
476 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
FIRSTSTARS 2015-03-13
  • 打赏
  • 举报
回复
楼主问题解决了把结果发一下呀
u010477670 2013-04-27
  • 打赏
  • 举报
回复
这个问题怎么解决啊?我也遇到一样的问题了。
u010477670 2013-04-27
  • 打赏
  • 举报
回复
是什么原因啊?我也遇到这种问题了。
personball 2013-04-03
  • 打赏
  • 举报
回复
自己找到原因了 传送门 结贴结贴。
personball 2013-04-02
  • 打赏
  • 举报
回复
引用 5 楼 fangxuan 的回复:
mvc中的CheckBox、CheckBoxFor不是很好用,生成的代码不甚简洁,且不好处理,建议用<input type="checkbox" />
嗯,后来没办法只能自己写input,然后填入数据,但是对于这个问题,觉得可以研究研究。。。
personball 2013-04-02
  • 打赏
  • 举报
回复
忘了说了,尝试进行注册的时候,要选上那两个复选框 csdn帖子不能编辑,真麻烦。。
白云任去留 2013-04-02
  • 打赏
  • 举报
回复
mvc中的CheckBox、CheckBoxFor不是很好用,生成的代码不甚简洁,且不好处理,建议用<input type="checkbox" />
personball 2013-04-02
  • 打赏
  • 举报
回复
引用 3 楼 yanglong925319 的回复:
item.Selected为Null
不会啊,一直是false的,你可以调试看看
  • 打赏
  • 举报
回复
item.Selected为Null
personball 2013-04-02
  • 打赏
  • 举报
回复
但是首次加载时,并不会有这个问题 只有post提交后,并且注册了ModelStateError后的Return View(model); 才会出现这个问题。 不知道asp.net mvc 在模型绑定验证失败后的 Return View 是否有什么特殊的地方。。
personball 2013-04-02
  • 打赏
  • 举报
回复
可能性1.@Html.CheckBox("SomeParas", item.Selected, new { value=item.Value})

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧