1

我有一些实体要填写到单个表单上的几个下拉列表中。这是最好的方法。对于单个视图中的多个模型,我创建了一个视图模型并将实体放入其中,但我如何才能恢复数据库中的列表,例如实体“网络”并用“名称”和“网络 ID”填充下拉列表?

4

3 回答 3

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-----"))
于 2013-09-20T07:01:54.457 回答
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)
于 2013-09-16T06:49:23.740 回答
0

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

或者,您可以使用 Ajax 获取该数据并在 java 脚本中绑定这些下拉列表并检索该值,而不是从控制器中抛出多个数据列表。

于 2013-09-18T04:31:12.730 回答