我有几个实体要填写单个表单上的几个下拉列表。这是最好的方法。对于单个视图中的多个模型,我创建了一个viewmodel并将实体放入其中,但是如何将数据库中的列表带回实体“Network”并填写下拉列表中的“Name”和“NetworkID”? / p>
答案 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,然后检索该值,而不是从控制器中抛出多个列表的数据。