多个下拉列表,多个模型

时间:2013-09-12 17:02:33

标签: asp.net-mvc html.dropdownlistfor selectlist

我有几个实体要填写单个表单上的几个下拉列表。这是最好的方法。对于单个视图中的多个模型,我创建了一个viewmodel并将实体放入其中,但是如何将数据库中的列表带回实体“Network”并填写下拉列表中的“Name”和“NetworkID”? / p>

3 个答案:

答案 0 :(得分:3)

首先创建模型:

public class Data
    {       
        public List<tbl_Dept> lstDepatrment;
        public List<tbl_employees> lstEmployee; 
        //other
    }

然后只需创建一个视图

@model MVCApp.Models.Data
@{
    var categoryList = Model.lstDepatrment.Select(cl => new SelectListItem
       {
           Value = cl.Dept_ID.ToString(),
           Text = cl.Dept_Description == null ? String.Empty : cl.Dept_Description
       });
     //list for other Drop Down
}
@(Html.DropDownList("sampleDropdown", categoryList, "-----Select-----"))

答案 1 :(得分:1)

您可以执行以下操作:

设计模型:

准备Select List您想要的下拉列表

例如:

Public class ModelName
{
...// Properties
public IEnumerable<SelectListItem> ListName1 { get; set; }
public IEnumerable<SelectListItem> ListName2 { get; set; }
public IEnumerable<SelectListItem> NetWorkList { get; set; }
... //etc
}

准备并将List绑定到Controller中的模型:

    public ActionResult Index(ModelName model)
    {
    var networks = // Your network List
    model.NetWorkList = networks.Select(x=> new SelectListItem() {
                Text = x.Name,
                Value = x.NetworkID
           });

    ..// Same as above prepare the list for other dropdowns

    return View(model);
    }

然后在您的视图中准备您的下拉列表如下:

@Html.DropDownListFor(m => Model.NetworkID,Model.NetWorkList)

答案 2 :(得分:0)

那么在这种情况下,您可以将所有模型列表数据保存在java脚本模型中的某个位置,然后使用JQuery,您可以将所有Dropdown控件绑定到相同的模型列表。

或者,您可以使用Ajax获取该数据,并在Java脚本中绑定那些Dropdown,然后检索该值,而不是从控制器中抛出多个列表的数据。