从另一个人那里召唤一个Razor助手

时间:2011-09-03 12:19:13

标签: asp.net-mvc razor

我需要创建Razor帮助器的第二个重载,并希望从另一个帮助器调用一个帮助器(带有一些特定的参数)。有没有办法实现它?

1 个答案:

答案 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视图引擎,您将不得不重写大部分代码