MVC:如何确保我的字段在编辑表单的视图中选择了值?

时间:2012-04-26 13:17:15

标签: javascript jquery html asp.net-mvc asp.net-mvc-3

我在我的项目中使用MVC3-Viewmodel。

我有一个创建和编辑表单,我想要做的是确保在用户创建表单后,他/她应该能够编辑它,当用户在编辑页面时,我希望要在输入和选择中显示的值。唯一不起作用的字段是我的DropDownList。我不明白为什么。

如果我关闭应用程序并转到编辑表单,我希望DropDownList具有创建的值。

这是代码:

foreach (SelectedQuestionViewModel items in Model.AllSelectedQuestions)
{  

 <select id="selectstyle2" class="Grade">
 @{
  <option>n/a</option>
  int Grade = 1;
    for (int i = 1; i <= 10; i++)
    {
     <option @(items.Grade.HasValue && items.Grade.Value == Grade ? "selected" : "") >@(i)</option>
    }
  }
 </select>
}

感谢任何帮助。

注意:我在我的控制器中使用ajax帖子,在控制器内部,我使用从此DDL中选择的值填充“Model.Grade”。

1 个答案:

答案 0 :(得分:0)

你的foreach循环中有 选择标记。将此标记写在外面,如下所示:

<select>
@foreach(var x in Model)
   //write out options
</select>

还可以看看Html.DropDownList扩展方法。这就是你想要手工完成的事情。

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions.dropdownlist.aspx

作为例子

@{
    var selectListItems = (new[] { 1,2,3}).Select(i=>new SelectListItem { Text = i.ToString(), Value = i.ToString() });
}
@Html.DropDownListFor(m=>m.AllSelectedQuestions[0].Grade, selectListItems, "n/a")