我一直在使用自定义HTML帮助程序扩展。最近我决定使用看起来像这样的帮助器
<%: Style.MyCustomExtensionMethod(...) %>
或
@Style.MyCustomExtensionMethod("abcd")
我在网上搜索但总是遇到通过Html.
我也从HtmlHelper类继承了这个
public static class Style : HtmlHelper
{
public static string test(this HtmlHelper helper, string text)
{
return text;
}
}
但是这不起作用(在View中它说它找不到带有一个参数的方法test()。
答案 0 :(得分:1)
如果您想在视图中实现此类语法,您可以随时:
public static class Style
{
public static MvcHtmlString MyCustomExtensionMethod(string foo)
{
...
}
}
显然,因为你没有扩展HtmlHelper
,你不再能够访问HttpContext,这限制了这种东西的用处。
另一种可能性是modify the base class所有剃刀视图都是通过扩展WebViewPage
并添加自定义属性来推导出来的,以后可以编写扩展方法。你必须问自己的问题是:值得吗?
我个人认为没有错误/丑陋/不正确:
@Html.MyCustomExtensionMethod("abcd")
或:
@Url.MyCustomExtensionMethod("abcd")
这些是ASP.NET MVC中的事实标准,每个开发人员都应该熟悉它们。使用智能感知和自定义助手的可发现性也更容易。