我有一个ListBoxFor帮助器,其中填充了必须从db验证的用户。我单击一个用户,然后单击“提交”按钮。这很好,并将db中的admin验证位设置为true。
然而,我想要做的是点击列表中的项目,自动回发值,然后我将填写带有用户描述的textarea。我收集我将使用AJAX,但发现很难通过这种方式获得有关使用AJAX和HTMLHelpers的良好文档。
编辑:根据建议更新模型,视图和控制器。
型号:
public class UserAdminVerifyModel
{
public SelectList ToBeVerifiedAdmin { get; set; }
public string[] SelectedUsers { get; set; }
public List<string> userdesc { get; set; }
}
控制器:
public ActionResult AdminVerifyListBox()
{
UserAdminVerifyModel verifusermodel = new UserAdminVerifyModel();
verifusermodel.ToBeVerifiedAdmin = GetUsersToBeVerified();
return View(verifusermodel);
}
查看:
@using (Html.BeginForm("AdminVerifyListbox", "UserRegLog"))
{
@Html.ListBoxFor(x => x.SelectedUsers, Model.ToBeVerifiedAdmin)
<br />
<input type="submit" value="Submit" title="submit" />
}
}
答案 0 :(得分:1)
ListBoxFor用于生成多选列表。这意味着您不应将其绑定到简单的字符串属性。您应该使用字符串数组:
public class UserAdminVerifyModel
{
public SelectList ToBeVerifiedAdmin { get; set; }
public string[] SelectedUsers { get; set; }
public List<string> userdesc { get; set; }
}
并在视图中将ListBoxFor绑定到SelectedUsers集合属性:
@using (Html.BeginForm("AdminVerifyListbox", "UserRegLog"))
{
@Html.ListBoxFor(x => x.SelectedUsers, Model.ToBeVerifiedAdmin)
<br />
<input type="submit" value="Submit" title="submit" />
}
此外,您的ToBeVerifiedAdmin
已经是SelectList。您不应该在视图中再次调用构造函数。这应该在您的控制器操作中完成,该操作负责从您的信息存储位置填充此ToBeVerifiedAdmin
属性。