MVC 4 ListBoxFor Not Posting back selected items

时间:2014-09-11 13:08:00

标签: c# asp.net-mvc-4 listbox

我正在尝试设置一个listbox,用于绑定到我的模型上的属性的控件。我可以正确填充列表框但在进行选择后,应包含所选项目的列表始终为空。我究竟做错了什么?我花了几个小时改变和尝试不同的事情,但仍然没有工作。

---- ----模型

    public class ManagementModel
{
    public IEnumerable<SelectListItem> AssignableEntities { get; set; }
    public IEnumerable<EntityDT> AssignedTestEntities { get; set; }

}

-----在Controller中获取方法-----

    [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" />

}

-----表格后方法-----

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult SaveSetup(ManagementModel model)
    {
       The list is empty when it gets to this method
    }   

1 个答案:

答案 0 :(得分:2)

我终于找到了这个问题。我将列出以下步骤来设置这些

  1. 模型上的集合属性必须是SelectListItem类型。
  2. 模型中用于存储集合中所选值的属性需要为字符串。
  3. 就是这样,它每次都会奏效!我已经能够得到一些这样的工作,因为我想出了这个方法。祝你好运!