【问题标题】:does not contain a definition for 'DropDownList'不包含“DropDownList”的定义
【发布时间】:2015-02-28 17:17:45
【问题描述】:

更新:

因为我的DropDownTypes 是一个集合,所以我尝试传递这样的内容:它可以工作,但我遇到的唯一问题是它选择的默认值是 0 和我的item.Type 的索引是选中的值

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

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

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

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

【问题讨论】:

  • 您有很多问题 - 您不能在循环中使用 DropDownListFor(),除非您生成新的 SelectList 并在每次迭代中设置选定的值,或者使用自定义 EditorTemplate模型并将SelectList 作为附加视图数据传递。你能发布模型和GET方法吗

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


【解决方案1】:

这就是我能够解决问题的方法,以防其他人需要知道。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我现在正在调查,我的item.DropDownTypes 是一个集合,所以即使我使用了DropdownlistFor
    【解决方案3】:

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

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

    【讨论】:

    • 是的,我已经尝试过了,现在所有下拉列表都获得相同的文本,即索引为 0,即使我的 id 不同
    • 我已经更新了我的问题,请看一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多