我正在尝试为Nullable<bool>
实现一个编辑器模板,而不是显示为true或false,显示为“Si”或“No”。这就是我到目前为止所拥有的。
@model Nullable<bool>
@{
var listItems = new List<System.Web.UI.WebControls.ListItem>();
listItems.Add(new System.Web.UI.WebControls.ListItem{Text="Si", Value="true"});
listItems.Add(new System.Web.UI.WebControls.ListItem{Text="No", Value="false"});
}
@Html.DropDownList( model => model.Value, listItems)
它会引发此错误Cannot convert lambda expression to type 'string' because it is not a delegate type
。我看不出错误我做错了???
答案 0 :(得分:3)
DropDownList
助手将字符串作为第一个参数,而不是lambda表达式。使用DropDownListFor
并确保第二个参数是IEnumerable<SelectListItem>
,而您的代码不是:{/ p>
@model Nullable<bool>
@{
var listItems = new[]
{
new SelectListItem { Value = "true", Text = "Si" },
new SelectListItem { Value = "false", Text = "No" }
};
}
@Html.DropDownListFor(model => model.Value, listItems)
您可以忘记ASP.NET MVC应用程序中的System.Web.UI.WebControls.ListItem
。这是一个经典的WebForms的东西。