DropDownListFor仅选择第一个值

时间:2015-02-23 15:21:30

标签: asp.net-mvc razor

我有一个详细信息视图,其中不同数量的站点显示在文本框中。在每个站点旁边,该国家/地区应显示在禁用的下拉列表中。我的问题是下拉列表没有选择正确的值。相反,它总是选择第一个项目。一些调试显示" SelectedCountries [i]"每个下拉列表都保持正确的值,但不知何故,这个值根本不会影响选择。

下拉列表的名称是" SelectedCountries [i]"而且我已经读过,对于下拉列表和模型中的字段使用相同的名称是不好的。但是,改变它并没有解决问题。

        <div id="allSitesAndCountries">
            @for (int i = 0; i < Model.SelectedSites.Count; i++)
            {
               @Html.TextBoxFor(m => m.SelectedSites[i], new { disabled = "disabled", })
               @Html.DropDownListFor(m => m.SelectedCountries[i], Model.AllCountriesSelectListItems, new{disabled = "disabled"})
            }
        </div>      

我在这里做错了什么? 提前谢谢。

编辑:我通过在视图中直接创建SelectList并添加第4个参数来实现它:

        <div id="allSitesAndCountries">
            @for (int i = 0; i < Model.SelectedSites.Count; i++)
            {
                <div class="editor-label">
                    @Html.TextBoxFor(m => m.SelectedSites[i], new { disabled = "disabled"})
                    @Html.DropDownListFor(m => m.SelectedCountries[i], new SelectList(Model.AllCountries, "Id", "Name", Model.SelectedCountries[i]), new{disabled = "disabled"})                        
                </div>
            }
        </div>      

0 个答案:

没有答案