我正在构建我的drowdown列表:
var ratingInfo = (来自Model.RatingSet.Where中的rl(x => x.QuestionID == @ item.QuestionID) &安培;&安培; x.ShowForPerson == true)。OrderBy(x => x.OptionPosition) 选择新的{Value = rl.OptionKey,Text = rl.Option});
var Rating = new SelectList((System.Collections.IEnumerable) ratingInfo,“Value”,“Text”,@ item.Rating);
<td class="center">@Html.DropDownListFor(r => r.RatingSet[iCount].OptionKey, Rating)</td>
一切都在完美呈现。但是,当我尝试提交表单以及我对评级下拉列表所做的任何更改时,我无法看到新值。
我认为它与下拉列表的ID不等于我设置的模型值有关。
如果是这种情况,如何设置DropDown列表id值(使用DropDownListFor
方法)?
这是下拉列表的HTML代码的输出:
<select data-val="true" data-val-number="The field OptionKey must be a number." data-val-required="The OptionKey field is required."
id="RatingSet_0__OptionKey" name="RatingSet[0].OptionKey">
<option value="5">---</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
</select>
答案:
基于48klocs的评论,我开始注意到我的代码中出了问题。 我没有使用我的模型中的正确项目来构建我的下拉列表。一旦我这样做了:
<td class="center">@Html.DropDownListFor(r => r.ResultSet[iCount].Rating, Rating)</td>
一切都开始像它应该的那样工作。