如何设置所选值下拉列表?以下内容未设置任何选定值。
@for (int i=0; i< Model.Students.Count;i++)
{
<tr>
<td>@Html.TextBoxFor(x => Model.Students[i].Name, new { @class = "form-control" })
@Html.ValidationMessageFor(x => Model.Students[i].Name)
</td>
<td>@Html.TextBoxFor(x => Model.Students[i].Age, new { @class = "form-control" })</td>
<td>
@*@Html.DropDownList("country", Model.Countries,)*@
@Html.DropDownListFor(x => Model.Students[i].Country, Model.Countries)
</td>
</tr>
}
的ActionResult:
public ActionResult ShowServerSideGrid()
{
var list = new List<SelectListItem>
{
new SelectListItem { Value = "1", Text = "USA" },
new SelectListItem { Value = "2", Text = "UK" },
new SelectListItem { Value = "3", Text = "China" },
new SelectListItem { Value = "4", Text = "Russia" }
};
var students = new List<StudentModel>();
students.Add(new StudentModel { Country = 1,Age = 24,Name = "Arjun"});
students.Add(new StudentModel { Country = 2, Age = 24, Name = "Kumar" });
students.Add(new StudentModel { Country = 3, Age = 45, Name = "Shiva" });
students.Add(new StudentModel { Country = 4, Age = 60, Name = "Aryal" });
StudentListModel listModel=new StudentListModel();
listModel.Students = students;
listModel.Countries = list;
return View(listModel);
}
答案 0 :(得分:2)
请使用以下代码解决问题
@Html.DropDownListFor(x => Model.Students[i].Country, new SelectList(Model.Countries,"Value","Text",Model.Students[i].Country))
答案 1 :(得分:0)
您需要在模型中使用List<SelectListItem> dropDownValues {get;set;}
使用控制器
中的值填充dropDownValues字段EG。
StudentListModel listModel=new StudentListModel();
listModel.dropDownValues .Add(new SelectListItem{Text = "USA", Value = "1"})
.......所以
并且在您的视图中,您必须使用语法
@Html.DropDownFor(x => Model.Students[i].Country, Model.dropDownValues)