【问题标题】:MVC 4 ListBoxFor Not Posting back selected itemsMVC 4 ListBoxFor Not Posting back selected items
【发布时间】:2014-10-16 03:00:37
【问题描述】:

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

----型号----

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

}

-----Controller中的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" />

}

-----表单发布方法-----

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

【问题讨论】:

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


    【解决方案1】:

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

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

    就是这样,它每次都会起作用!自从我按照这种方法弄清楚以来,我已经能够使其中一些工作。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多