我需要创建Razor帮助器的第二个重载,并希望从另一个帮助器调用一个帮助器(带有一些特定的参数)。有没有办法实现它?
答案 0 :(得分:6)
不确定
using System.Web.Mvc;
using System.Web.Mvc.Html;
public static class ActionLinkExtensions
{
public static IHtmlString MyActionLink(this HtmlHelper html)
{
// call the base ActionLink helper:
return html.ActionLink("some text", "someAction");
}
}
然后在你看来:
@Html.MyActionLink()
如果您正在讨论@helper
Razor助手,则需要传递HtmlHelper
的实例作为参数,因为它在助手上下文中不可用:
@helper MyActionLink(HtmlHelper html)
{
@html.ActionLink("some text", "someAction")
}
然后:
@MyActionLink(Html)
我个人更喜欢第一种方法,因为它与视图引擎无关,可以移植到您喜欢的任何其他视图引擎,而第二种方法是Razor特定的,如果明天Microsoft发明Blade视图引擎,您将不得不重写大部分代码