MVC MultiSelectList 在提交表单时发布 NULL
MVC MultiSelectList posts NULL when form is submitted
我很难从 MultiSelectList 中捕获发布的值。当页面加载时,select 列表控件从我的模型中的列表中成功填充。但是提交表单时,模型列表为空。
这些属性在我的 "Contact" 模型中。 Contact 对象只有一个 ExternalUserID (int) 和一个 PublicName (string) 属性.
public List<Contact> AvailableContacts { get; set; }
public List<Contact> SelectedContacts { get; set; }
这些控件在我的表单上。
@Html.ListBoxFor(m => m.AvailableContacts,
new MultiSelectList(Model.AvailableContacts, "ExternalUserID", "PublicName", null),
new { @class = "form-control", size = "15" })
@Html.ListBoxFor(m => m.SelectedContacts,
new MultiSelectList(Model.SelectedContacts, "ExternalUserID", "PublicName", null),
new { @class = "form-control", size = "15" })
这是我的控制器。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditContacts(Contacts model)
{
if (ModelState.IsValid)
{
// Code to save omitted for clarity.
}
return View(model);
}
这可能需要一些简单的调整,之前可能有人问过,但我还没有找到关于 SO 的解决方案或在线的简明示例。如果您倾向于将此标记为重复项,请在简明示例中添加 link。
感谢您的帮助。
您需要 属性 才能将所选项目绑定到。多个 <Select>
绑定到并 post 返回一个值类型数组。
public class MyViewModel
{
public int[] SelectedContacts { get; set; }
public List<Contact> AvailableContacts { get; set; }
}
查看
@Html.ListBoxFor(m => m.SelectedContacts, new SelectList(Model.AvailableContacts, "ExternalUserID", "PublicName"), new { @class = "form-control", size = "15" })
我很难从 MultiSelectList 中捕获发布的值。当页面加载时,select 列表控件从我的模型中的列表中成功填充。但是提交表单时,模型列表为空。
这些属性在我的 "Contact" 模型中。 Contact 对象只有一个 ExternalUserID (int) 和一个 PublicName (string) 属性.
public List<Contact> AvailableContacts { get; set; }
public List<Contact> SelectedContacts { get; set; }
这些控件在我的表单上。
@Html.ListBoxFor(m => m.AvailableContacts,
new MultiSelectList(Model.AvailableContacts, "ExternalUserID", "PublicName", null),
new { @class = "form-control", size = "15" })
@Html.ListBoxFor(m => m.SelectedContacts,
new MultiSelectList(Model.SelectedContacts, "ExternalUserID", "PublicName", null),
new { @class = "form-control", size = "15" })
这是我的控制器。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditContacts(Contacts model)
{
if (ModelState.IsValid)
{
// Code to save omitted for clarity.
}
return View(model);
}
这可能需要一些简单的调整,之前可能有人问过,但我还没有找到关于 SO 的解决方案或在线的简明示例。如果您倾向于将此标记为重复项,请在简明示例中添加 link。
感谢您的帮助。
您需要 属性 才能将所选项目绑定到。多个 <Select>
绑定到并 post 返回一个值类型数组。
public class MyViewModel
{
public int[] SelectedContacts { get; set; }
public List<Contact> AvailableContacts { get; set; }
}
查看
@Html.ListBoxFor(m => m.SelectedContacts, new SelectList(Model.AvailableContacts, "ExternalUserID", "PublicName"), new { @class = "form-control", size = "15" })