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