首页 > 解决方案 > 剃刀选择框无法转换 lambda 表达式

问题描述

我需要将其转换<select id="degreemultiselect" multiple="multiple"></select为剃刀控件@Html.DropDownList,但我收到错误消息“无法将 lambda 表达式转换为类型字符串?” 是因为模型是一个列表public List<DegreeModel> selectedRequesterDegrees { get; set; },有没有解决这个问题的方法?

@Html.DropDownList(x => x.selectedRequesterDegrees, new { id = "degreemultiselect", @class = "form-control" })
@Html.ValidationMessageFor(model => model.selectedRequesterDegrees)

标签: razorasp.net-core-mvcrazor-pages

解决方案


这是一个工作演示:

模型:

public class Test
{
    public List<DegreeModel> selectedRequesterDegrees { get; set; }
}

看法:

@model Test
@Html.DropDownListFor(x => x.selectedRequesterDegrees, new SelectList(Model.selectedRequesterDegrees, "Id", "Name"), null, new { id = "degreemultiselect", @class = "form-control" })

控制器:

[HttpGet]
public ActionResult Index()
{
    var model = new Test()
    {
        selectedRequesterDegrees = new List<DegreeModel>()
        {
            new DegreeModel(){ Id=1,Name="aa"},
            new DegreeModel(){ Id=2,Name="bb"},
            new DegreeModel(){ Id=3,Name="cc"}
        }
    };
    return View(model);
}  

结果:

在此处输入图像描述


推荐阅读