不包含'DropDownList'的定义

时间:2015-02-28 17:17:46

标签: asp.net-mvc asp.net-mvc-4

更新:

因为我的DropDownTypes是一个集合,所以我尝试传递这样的东西:它有效,但我唯一的问题是它选择默认值,无论索引为0和我的{ {1}}是选定的值

item.Type

我在这里做错了,我正在尝试加载下拉列表

  

'System.Web.Mvc.HtmlHelper>'   不包含'DropDownList'的定义和最佳定义   扩展方法重载   “System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper,   串,   System.Collections.Generic.IEnumerable,   对象)'有一些无效的参数

 @Html.DropDownListFor(m => item.Type, new SelectList(item.DropDownTypes.Select(x => x.Text)))

3 个答案:

答案 0 :(得分:3)

这是我能够达成解决方案的方式,以防其他人需要知道。

@Html.DropDownListFor(model => item.Type.Value, new SelectList(ViewBag.DropDownLoadRecoveryType,  "Value", "Text", item.Type))

答案 1 :(得分:0)

您使用的DropDownList助手的第一个参数必须是字符串,因此请确保item.DropDownTypes实际上是一个字符串。如果不是,您可以考虑在其上调用.ToString()

答案 2 :(得分:0)

您应该考虑将下拉列表的选定值添加到模型的另一个变量中。这样您就可以在下拉列表中使用它,因为您目前正在通过一个无效的列表:

@model IEnumerable<web.Models.CollectionViewModel>
@foreach (var item in Model )
{
  <tr>
    <td>
         @Html.DropDownList(item.SelectedDropDownType, (IEnumerable<SelectListItem>)ViewBag.DropDownLoadRecoveryType, new { @class = "form-control" })
    </td>
  </tr>
}

item.SelectedDropDownType可能

的地方
public string SelectedDropDownType { get; set;}