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
    }   

MVC 4 ListBoxFor Not Posting back selected items

我终于解决了这个问题。我将在下面列出设置的步骤

  1. 模型上的集合属性的类型必须为SelectListItem
  2. 模型上用于存储集合中选定值的属性必须是字符串

就是这样,它每次都会起作用!自从我按照这个方法找到它以来,我已经能够让其中的一些工作了。祝你好运