小编典典
要在Razor视图中使用自定义帮助方法,您需要将其纳入范围。有两种方法可以做到这一点:
@using SomeNamespace在视图顶部添加一个名称空间,该名称空间定义了包含帮助程序的静态类
在中~/Views/web.config,添加:
将自定义帮助程序放入视图范围后,Intellisense应该可以选择它,并且可以使用它:
@Html.StateDropDownList()
现在您的辅助方法需要做一些有用的事情。您可以致电现有的助手:
public static class ExtensionMethods
{
public static MvcHtmlString StateDropDownList(this HtmlHelper html)
{
return html.TextBox("foo")
}
}
或返回一些自定义数据:
public static class ExtensionMethods
{
public static MvcHtmlString StateDropDownList(this HtmlHelper html)
{
return MvcHtmlString.Create("Hello world");
}
}
如果您有一个强类型的视图,并且想要使用一个表达式:
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class ExtensionMethods
{
public static MvcHtmlString StateDropDownList(
this HtmlHelper html
)
{
var stateList = new SelectList(new[]
{
new { Key = "Alabama", Value = "Alabama" },
new { Key = "Idaho", Value = "Idaho" },
new { Key = "California", Value = "California" }
}, "Key", "Value");
return Html.DropDownListFor(
x => x.State, stateList, "-- Select a state --"
);
}
}
然后:
@Html.StateDropDownList()
2020-05-10