c# - MVC DropDownListFor 不从模型中选择值

标签 c# asp.net-mvc asp.net-mvc-4 razor

我已经通读了这个问题ASP.NET MVC DropDownListFor not selecting value from model并回答,但我不知道我的问题的解决方案。

这是我的观点:

@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++;
}

我可以确认正在填充模型数据(从我的 Controller ):

model.adjusterLanguages = adjLangs;

那么,如何让它在模型发送到 View 时选择项目?

生成的html如下:

<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>

最佳答案

我找到答案了!感谢大家的帮助。当我将我的代码更改为以下内容时,它起作用了。该代码仅指定所选值:

@Html.DropDownListFor(
   model => Model.adjusterLanguages[i].languageID, 
   new SelectList(
       ViewBag.ForeignLanguages, "Value", "Text", 
       @Model.adjusterLanguages[i].languageID)) 

关于c# - MVC DropDownListFor 不从模型中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799476/

相关文章:

c# - ANTLR ID 与词法分析器规则混合在一起

asp.net - 如何在同一解决方案中从 MVC 项目调试 Web API 项目

css - 回发后 webgrid 上的列宽丢失

c# - 在 ASP.NET MVC3 模型绑定(bind)器中使用依赖注入(inject)

asp.net - ASP.NET MVC 中的 NHibernate 事务管理 - 应该如何完成?

c# - 更改 MVC 4 上的默认路由

javascript - Ajax 请求被 onClick 请求覆盖

c# - 输入.GetButtonDown ("Jump");在 Unity 中不适用于空格键

c# - 更改 facebook redirect_uri web api

c# - 使用 HeatDirectory 从 wix 中的多个目录中收集文件