在MVC视图中使用HTML助手方法和Linq查询来创建多行多属性下拉列表。
HTML代码示例:
@model IEnumerable
@for(int i = 0; i < Model.Count(); i++)
{
@Html.DropDownListFor(m => Model.ElementAt(i).SelectedValue, new SelectList(Model.ElementAt(i).ListItems, "Value", "Text"), "--Select--")
@Html.TextBoxFor(m => Model.ElementAt(i).Property1, new { @class = "form-control" })
@Html.TextBoxFor(m => Model.ElementAt(i).Property2, new { @class = "form-control" })
@Html.TextBoxFor(m => Model.ElementAt(i).Property3, new { @class = "form-control" })
}
控制器代码示例:
public ActionResult Index()
{
var modelList = new List();
modelList.Add(new MyModel { Property1 = "Value1", Property2 = "Value2", Property3 = "Value3", ListItems = new List { new SelectListItem { Text = "Option1", Value = "1" }, new SelectListItem { Text = "Option2", Value = "2" }, new SelectListItem { Text = "Option3", Value = "3" } } });
modelList.Add(new MyModel { Property1 = "Value4", Property2 = "Value5", Property3 = "Value6", ListItems = new List { new SelectListItem { Text = "Option4", Value = "4" }, new SelectListItem { Text = "Option5", Value = "5" }, new SelectListItem { Text = "Option6", Value = "6" } } });
modelList.Add(new MyModel { Property1 = "Value7", Property2 = "Value8", Property3 = "Value9", ListItems = new List { new SelectListItem { Text = "Option7", Value = "7" }, new SelectListItem { Text = "Option8", Value = "