我一直在關注本教程http://blogs.msdn.com/b/stuartleeks/archive/2010/05/21/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx但我遇到了錯誤「System.Web.Mvc.HtmlHelper不包含EnumDropDownListFor的定義」。System.Web.mvc.HtmlHelper不包含EnumDropDownListFor的定義
型號:
public enum Codes
{
IBC2012,
IBC2009,
IBC2006,
FL2010,
CBC2007
}
public class Code
{
public int ID { get; set; }
public int Active { get; set; }
public string Description { get; set; }
public string Edition { get; set; }
public Codes Code { get; set; }
}
控制器:
public static MvcHtmlString EnumDropDownListFor<TModel, TEnum>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TEnum>> expression)
{
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
IEnumerable<SelectListItem> items =
values.Select(value => new SelectListItem
{
Text = value.ToString(),
Value = value.ToString(),
Selected = value.Equals(metadata.Model)
});
return htmlHelper.DropDownListFor(
expression,
items
);
}
HTML輔助:
@Html.EnumDropDownListFor(model => model.Code.Codes)
任何幫助理解。
將您的'EnumDropDownListFor'的第一個參數更改爲'this HtmlHelper htmlHelper' – mattytommo
EnumDropDownListFor html helper是否在控制器中?據我所知,擴展方法應該在一些靜態類中 – VJAI