MVC网格表下拉选择值

时间:2014-02-04 02:20:31

标签: asp.net-mvc-4 razor

如何设置所选值下拉列表?以下内容未设置任何选定值。

 @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);
    }

2 个答案:

答案 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)