我设法让一个复选框列表工作,当我发布“通常的方式”时,我无法以某种方式获取值。我必须使用Request.Form并在更新数据库之前将它们循环到模型中吗?
“userobj”在帖子上有userobj.UsersUsergroups count = 0。
控制:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UserEdit([BindAttribute(Include = "Firstname,Surname,Username,Email,Password,UserID,UsergroupID")]User userobj)
{
if (ModelState.IsValid)
{
try
{
us.SaveUser(userobj);
}
catch
{
ModelState.AddModelError("SomeError", "errrrrrrrrror");
}
}
return View("UserDetail", new UsersAdminModel { User = userobj });
}
我的复选框生成为:
<input id="UsergroupID_0" name="UsergroupID" type="checkbox" value="2" /> <label for="UsergroupID_0" id="label-0">Grupp 1</label><br />
<input id="UsergroupID_1" name="UsergroupID" type="checkbox" value="3" /> <label for="UsergroupID_1" id="label-1">Grupp 2</label><br />
<input id="UsergroupID_2" name="UsergroupID" type="checkbox" value="4" /> <label for="UsergroupID_2" id="label-2">234234</label><br />
<input id="UsergroupID_3" name="UsergroupID" type="checkbox" value="5" /> <label for="UsergroupID_3" id="label-3">234234</label><br />
<input id="UsergroupID_4" name="UsergroupID" type="checkbox" value="6" /> <label for="UsergroupID_4" id="label-4">234234</label><br />
<input id="UsergroupID_5" name="UsergroupID" type="checkbox" value="7" /> <label for="UsergroupID_5" id="label-5">345345345</label><br />
<input id="UsergroupID_6" name="UsergroupID" type="checkbox" value="8" /> <label for="UsergroupID_6" id="label-6">3453453456</label><br />
<input id="UsergroupID_7" name="UsergroupID" type="checkbox" value="9" /> <label for="UsergroupID_7" id="label-7">Grupp 122</label><br />
如何在发布后使用选中的值“填充”用户对象?
提前致谢 / M
编辑:
我尝试过:
的[AcceptVerbs(HttpVerbs.Post)] public ActionResult UserEdit([BindAttribute(Include =“Firstname,Surname,Username,Email,Password,UserID,UsergroupID”)] User userobj,IList UsergroupID)
似乎将复选框中的值分配给该列表...
但我该如何将它分配给userobj.UsersUsergroups?我尝试时错误的类型
/ M
答案 0 :(得分:3)
查看Phil Haack关于如何建模绑定元素列表的优秀blog post。
你是否可以直接使用它,我不确定,但是你总是可以在一个单独的参数中获取id,然后通过id检索组以添加到你的用户对象。我不知道它会在给定ID的情况下从数据库中填充组。可能需要自定义模型绑定器。
<input type="hidden" name="UserGroupID.Index" value="0" />
<input type="checkbox" name="UserGroupID[0]" id="UserGroupID_0" value="0" />
<label for="UsergroupID_0" id="label-0">Group 0</label><br />
<input type="checkbox" name="UserGroupID[1]" id="UserGroupID_1" value="1" />
<label for="UsergroupID_1" id="label-1">Group 1</label><br />
...