我如何调用这个函数?
public static HtmlString DropdownForEnum<TModel>(this HtmlHelper<TModel> helper, Type type,
string name, string optionLabel, object htmlAttributes)
在页面内(使用 razor 语法):
@Html.DropDownForEnum(typeof(enumToDropDown), name: "Foo", optionLable: "Bar", htmlAttributes: null)
参数的“this”部分向我表明这是一个“扩展方法”——基本上是一个对对象执行一些公共操作的辅助方法,但可以像调用该对象的方法一样调用它。
HtmlHelper<Model> helper;
Type type;
String name;
String optionLabel;
Object htmlAttributes;
helper.DropdownForEnum(type, name, optionLabel, htmlAttributes);
// or, the standard way for calling a static:
NameOfClassWhereYouFoundMethod.DropdownForEnum(helper, type, name, optionLabel, htmlAttributes);
这是 HtmlHelper 上的扩展方法。因此,它应该这样调用:
HtmlHelper<TModel> instance = new HtmlHelper<TModel>();
instance.DropdownForEnum(type, name, optionLabel, htmlAttributes)
其中 TModel 是在声明时分配给泛型的类型。
另请参阅此问题: MVC3 Razor DropDownListFor Enums
关于扩展方法,请参阅:http: //msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx
这是HtmlHelperextension
上的一种方法。你可以在这里阅读更多关于它的信息。
你可以这样称呼它
yourhtmlHelperObject.DropdownForEnum(someType,someName,label,attributes);