MVC DropDownList对于不从模型中选择值 [英] MVC DropDownListFor not selecting value from model
问题描述
我已经阅读了这个问题 ASP.NET MVC DropDownListFor没有从模型中选择价值并回答,但我不知道我的问题的解决方案.
这是我的观点:
@foreach(Model.adjusterLanguages 中的 var adjusterLanguages){<div class="editor-field row">@Html.DropDownListFor(model => Model.adjusterLanguages[i].languageID,(SelectList)ViewBag.ForeignLanguages)@Html.ValidationMessageFor(model =>Model.adjusterLanguages[i].languageID)
<div style="clear: left;"></div>我++;}
我可以确认正在填充模型数据(来自我的控制器):
model.adjusterLanguages = adjLangs;
那么,当模型被发送到视图时,我怎样才能让它选择项目?
生成的html如下:
<select id="adjusterLanguages_0__languageID" name="adjusterLanguages[0].languageID"><option value="">--选择--</选项><option value="94c5be88-814e-4719-9784-587eb88aa975">南非语</option><option value="37b7bf71-7f4e-47c2-8b81-652b0d63dbcb">阿尔巴尼亚语</option><option value="c94d6d85-0ba2-47d7-932e-2a61feba37b3">阿拉伯语</option><!-- ... 为简洁起见被截断 ... --></选择><span class="field-validation-valid" data-valmsg-for="adjusterLanguages[0].languageID" data-valmsg-replace="true"></span><div style="clear: left;"></div><div class="editor-field row"><select id="adjusterLanguages_1__languageID" name="adjusterLanguages[1].languageID"><option value="">--选择--</option><option value="94c5be88-814e-4719-9784-587eb88aa975">南非语</option><option value="37b7bf71-7f4e-47c2-8b81-652b0d63dbcb">阿尔巴尼亚语</option><option value="c94d6d85-0ba2-47d7-932e-2a61feba37b3">阿拉伯语</option><!-- ... 为简洁起见被截断 ... --></选择><span class="field-validation-valid" data-valmsg-for="adjusterLanguages[1].languageID" data-valmsg-replace="true"></span>
我找到了答案!感谢大家的帮助.当我将代码更改为以下内容时,它可以工作.代码只是指定了选定的值:
@Html.DropDownListFor(模型 =>模型.adjusterLanguages[i].languageID,新的选择列表(ViewBag.ForeignLanguages, "Value", "Text",@Model.adjusterLanguages[i].languageID))
I have read through this question ASP.NET MVC DropDownListFor not selecting value from model and answer but I don't know the solution to my problem.
This is my view:
@foreach (var adjusterLanguages in Model.adjusterLanguages)
{
<div class="editor-field row">
@Html.DropDownListFor(model => Model.adjusterLanguages[i].languageID,
(SelectList)ViewBag.ForeignLanguages)
@Html.ValidationMessageFor(model =>Model.adjusterLanguages[i].languageID)
</div>
<div style="clear: left;"></div>
i++;
}
I can confirm that the model data is being populated (from my controller):
model.adjusterLanguages = adjLangs;
So, how can I make it select the items when the model gets sent to the view?
The generated html is as follows:
<div class="editor-field row">
<select id="adjusterLanguages_0__languageID" name="adjusterLanguages[0].languageID"><option value="">--Select--
</option>
<option value="94c5be88-814e-4719-9784-587eb88aa975">Afrikanns</option>
<option value="37b7bf71-7f4e-47c2-8b81-652b0d63dbcb">Albanian</option>
<option value="c94d6d85-0ba2-47d7-932e-2a61feba37b3">Arabic</option>
<!-- ... truncated for brevity ... -->
</select>
<span class="field-validation-valid" data-valmsg-for="adjusterLanguages[0].languageID" data-valmsg-replace="true"></span>
</div>
<div style="clear: left;"></div>
<div class="editor-field row">
<select id="adjusterLanguages_1__languageID" name="adjusterLanguages[1].languageID">
<option value="">--Select--</option>
<option value="94c5be88-814e-4719-9784-587eb88aa975">Afrikanns</option>
<option value="37b7bf71-7f4e-47c2-8b81-652b0d63dbcb">Albanian</option>
<option value="c94d6d85-0ba2-47d7-932e-2a61feba37b3">Arabic</option>
<!-- ... truncated for brevity ... -->
</select>
<span class="field-validation-valid" data-valmsg-for="adjusterLanguages[1].languageID" data-valmsg-replace="true"></span>
</div>
I found the answer! Thanks to all for your help. When I change my code to the following, it works. The code simply specifies the selected value:
@Html.DropDownListFor(
model => Model.adjusterLanguages[i].languageID,
new SelectList(
ViewBag.ForeignLanguages, "Value", "Text",
@Model.adjusterLanguages[i].languageID))
这篇关于MVC DropDownList对于不从模型中选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!