【问题标题】:How to convert Ienumerable<system.web.mvc.selectedlistitem> to Generic.List<system.web.mvc.selecteditemlist>?如何将 Ienumerable<system.web.mvc.selectedlistitem> 转换为 Generic.List<system.web.mvc.selecteditemlist>?
【发布时间】:2021-07-12 09:31:26
【问题描述】:

不能隐式转换类型 'System.Collection.Generic.Ienumerable' 到'System.Collections.Generic.List'

我正在尝试为 View 模型制作一个 selectedlistitem 以制作下拉菜单。

SurveyResult 的视图模型

public List<SelectListItem> SurveyMasterList { get; set; }

MasterList 从数据库中取值

var MasterList = _mcniDbContext.SurveyMaster.Where(e => e.SurveyMasterId == tempCustomer.SurveyMasterId).ToList();

错误出现在下面的代码中。

temp.SurveyMasterList = MasterList.Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() });

【问题讨论】:

    标签: c# .net asp.net-mvc entity-framework


    【解决方案1】:

    假设 temp.SurveyMasterList 也是 SelectListItem 的列表,只需通过添加 ToList() 来修复您的第二个查询;

    temp.SurveyMasterList = MasterList
    .Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() })
    .ToList();
    

    但最好合并两个查询

    temp.SurveyMasterList = _mcniDbContext.SurveyMaster
    .Where(e => e.SurveyMasterId == tempCustomer.SurveyMasterId)
    .Select(m => new SelectListItem { Text = m.SurveyName, Value = m.SurveyMasterId.ToString() })
    .ToList();
    

    【讨论】:

      【解决方案2】:

      您可以在视图模型中将List&lt;SelectListItem&gt; 定义为IEnumerable&lt;SelectListItem&gt;。然后在你的控制器中像这样填充它:

      viewmodelobject.SurveyMasterList = new SelectList(_mcniDbContext.SurveyMaster, "SurveyMasterId", "SurveyName");
      

      在你的视图中,你可以这样使用它:

      @Html.DropDownList("DrpSurvey", Model.SurveyMasterList , "Master List: ", new { @class = "form-control" })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多