Конечно:
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, вам придется переписать большую часть кода.