创建一个编辑器模板

时间:2011-10-13 20:07:36

标签: c# asp.net asp.net-mvc asp.net-mvc-3

我正在尝试为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。我看不出错误我做错了???

1 个答案:

答案 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的东西。