Html.DropDownList(listname,list)不返回包含所选项的列表

时间:2014-01-30 15:09:19

标签: asp.net-mvc-4

我最近将一些部分视图扩展为在我的代码的另一部分中有用,并且在这样做时,我转换了我的DropDownList()调用,以便能够接受名称和列表,而不是只使用列表名称:

MvcHtmlString s;
MvcHtmlString s2;
var list = ViewBag.AccountCodeList as SelectList;
s = Html.DropDownList("AccountCodeList"); //old style
s2 = Html.DropDownList("AccountCodeList", list); // new style 

然而,两次调用的输出并不相同(正如我预期的那样)。第一个调用返回字符串:

<select id="AccountCodeList" name="AccountCodeList">
    <option selected="selected" value="0">--None--</option>
    <option value="23">01L00000021150000000</option>
    <option value="40">10A00000071100000000</option>
    <option value="39">10R30129216000000000</option>
    <option value="2">2005-00-00</option>
    <option value="4">3105-00-00</option>
    <option value="5">4105-40-000</option>
    <option value="3">4250-40-12</option>
</select>

但第二个回归:

<select id="AccountCodeList" name="AccountCodeList">
    <option value="0">--None--</option>
    <option value="23">01L00000021150000000</option>
    <option value="40">10A00000071100000000</option>
    <option value="39">10R30129216000000000</option>
    <option value="2">2005-00-00</option>
    <option value="4">3105-00-00</option>
    <option value="5">4105-40-000</option>
    <option value="3">4250-40-12</option>
</select>

正如您所看到的,这些列表是相同的...除了新的&#39;风格并没有产生所选择的&#39;属性。我已经确认list确实包含SelectListItem,其中包含已选中的 s2 = Html.DropDownList("test", list); 。属性。

我错过了什么?我似乎无法找出这种意外(对我而言)行为的任何原因。

我已经阅读了这篇文章(ASP.NET MVC dropdownlist not selecting value on render),并且没有看到任何内容看起来特别适用于我的情况。

修改

一时兴起,我将s2调用更新为:

{{1}}

现在我发现列表会生成正确的选定值!!

这里发生了什么?

编辑2

这篇文章似乎为我所看到的提供了最佳答案 ASP.NET MVC Html.DropDownList SelectedValue 它对我没有意义,但我想现在我知道我要做些什么来解决它。

编辑3

这似乎是问题的实际答案&#34;为什么&#34; :https://stackoverflow.com/a/20556072

0 个答案:

没有答案