2014-02-04 3 views
1

Как установить выпадающее меню выбранного значения? Следующие значения не заданы.Таблица таблицы сетки MVC выбранное значение

@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

взгляд при передаче модели на представление. вы привязываете свой раскрывающийся список к Model.Students [i] .Country. убедитесь, что для этого поля установлено значение, которое соответствует значению в Model.Countries –

+0

Если проверить значение actionresult, значение Country установлено в соответствии с значениями в selectlistitem – arjun

+0

, это может иметь отношение к foreach. попробуйте поместить раскрывающийся список за пределы foreach, чтобы узнать, установлен ли он. Также попробуйте установить выбранное свойство одного из элементов списка выбора, чтобы увидеть, изменились ли выпадающие значения от –

ответ

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) 
2

Пожалуйста, используйте следующий код, чтобы решить его

@Html.DropDownListFor(x => Model.Students[i].Country, new SelectList(Model.Countries,"Value","Text",Model.Students[i].Country)) 
+0

selectedValue следует указывать при создании SelectList в цикле. Поэтому это должно быть отмечено как правильный ответ. –

Смежные вопросы