我需要创建Razor帮助器的第二个重载,并希望从另一个帮助器调用一个帮助器(带有一些特定的参数).有没有办法实现它?
当然:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你看来:
@Html.MyActionLink()
Run Code Online (Sandbox Code Playgroud)
如果您正在谈论@helperRazor助手,则需要传递HtmlHelperas参数的实例,因为它在助手上下文中不可用:
@helper MyActionLink(HtmlHelper html)
{
@html.ActionLink("some text", "someAction")
}
Run Code Online (Sandbox Code Playgroud)
然后:
@MyActionLink(Html)
Run Code Online (Sandbox Code Playgroud)
我个人更喜欢第一种方法,因为它是视图引擎不可知的,可以移植到你喜欢的任何其他视图引擎,而第二种是Razor特定的,如果明天微软发明Blade视图引擎,你将不得不重写你的大部分代码.
| 归档时间: |
|
| 查看次数: |
2251 次 |
| 最近记录: |