asp.net-mvc-3 – MVC3 @ Html.DropDownList不填充所选项目

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – MVC3 @ Html.DropDownList不填充所选项目前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在MVC3应用程序中有以下下拉列表,并且所选项目未显示值.我的下拉列表包含在自定义类的列表中.我的观看代码如下.
  1. ...
  2.  
  3. for (int i = 0; i < Model.PartAttributes.Count; i++)
  4. {
  5. if (Model.PartAttributes[i].IsActive)
  6. {
  7. <div class="row inline-inputs">
  8. <label class="span5">@Model.PartAttributes[i].DisplayName:</label>
  9. @Html.DropDownListFor(m => m.PartAttributes[i].Value,Model.PartAttributes[i].PartList,"Choose Part")
  10. @Html.TextBoxFor(model => Model.PartAttributes[i].Value,new { @class = "mini" })
  11. @Html.ValidationMessageFor(model => Model.PartAttributes[i].Value)
  12. @Html.HiddenFor(model => model.PartAttributes[i].AttributeName)
  13.  
  14. </div>
  15. }
  16. }
  17. ...

下拉框下方的文本框正确填充,列表选项正确填充.所选选项位于要选择的选项列表中.我能做错什么?

解决方法

试试这样:
  1. @Html.DropDownListFor(
  2. m => m.PartAttributes[i].Value,new SelectList(
  3. Model.PartAttributes[i].PartList,"Value","Text",Model.PartAttributes[i].Value
  4. ),"Choose Part"
  5. )

AFAIK如果此lambda表达式表示具有集合的复杂嵌套属性,则DropDownListFor帮助程序无法确定作为第一个参数传递的lambda表达式中的选定值.但是使用简单的属性:m => m.FooBar.我知道它有点糟糕,但希望这将在未来的版本中修复.

猜你在找的asp.Net相关文章