MVC 4 ListBoxFor Not Posting back selected items
本文关键字:back selected items Posting Not ListBoxFor MVC | 更新日期: 2023-09-27 18:21:28
我正在尝试为绑定到模型属性的控件设置一个列表框。我可以正确填充列表框,但在做出选择后,应该包含所选项目的列表总是空的。我做错了什么?我花了几个小时来改变和尝试不同的东西,但仍然不起作用。
----型号----
public class ManagementModel
{
public IEnumerable<SelectListItem> AssignableEntities { get; set; }
public IEnumerable<EntityDT> AssignedTestEntities { get; set; }
}
-----控制器中的Get方法-----
[HttpGet()]
public ActionResult Index()
{
ManagementModel model = new ManagementModel();
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (EntityDT entity in atomService.GetAllAssignableLocations())
{
SelectListItem item = new SelectListItem()
{
Selected = false,
Text = entity.EntityName,
Value = entity.EntityID.ToString()
};
listItems.Add(item);
}
model.AssignableEntities = listItems;
return View(model);
}
-----视图-----
@using (Html.BeginForm("SaveSetup", "Management"))
{
<div>
@Html.ListBoxFor(model => model.AssignedTestEntities, Model.AssignableEntities, new { style = "height:350px;width:175px;" })
</div>
<input type="submit" id="btnGiftManagementSubmit" value="Save" />
}
-----Form Post方法----
[HttpPost]
[ValidateInput(false)]
public ActionResult SaveSetup(ManagementModel model)
{
The list is empty when it gets to this method
}
我终于解决了这个问题。我将在下面列出设置的步骤
- 模型上的集合属性的类型必须为SelectListItem
- 模型上用于存储集合中选定值的属性必须是字符串
就是这样,它每次都会起作用!自从我按照这个方法找到它以来,我已经能够让其中的一些工作了。祝你好运