1

我在我的项目中使用 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”。

4

1 回答 1

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")
于 2012-04-26T13:25:45.530 回答