11

我有 ASP.NET MVC3 项目,我正在编写一些返回 HTML 的扩展方法,但我需要 UrlHelper 来呈现它们。为此,我正在扩展 UrlHelper,但我不喜欢语义,因为 UrlHelper 应该使用 URL,而 HtmlHelper 应该使用 HTML。我想用这种方法而不是 UrlHelper 来扩展 HtmlHelper。

我的问题是我现在不知道如何从 HtmlHelper 的扩展方法访问 UrlHelper,这可能吗?或者我必须坚持使用 UrlHelper 扩展。

我知道我可以发送 Url 助手作为参数,但我不太喜欢这个解决方案。

以下代码是我正在谈论的扩展方法的示例:

public static HtmlString AnchorLink(this UrlHelper url, string text, string action, string anchor) {
    return new HtmlString(string.Format("<a href=\"{0}#{2}\">{1}</a>", url.Action(action), text, anchor));
}

谢谢

4

1 回答 1

24

你可以实例化一个UrlHelper自己...

public static HtmlString AnchorLink(this HtmlHelper html, string text, string action, string anchor) {
    var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
}
于 2012-04-13T09:55:05.410 回答