我有ASP.NET MVC3项目,我正在编写一些返回HTML的扩展方法,但我需要UrlHelper来渲染它们。要做到这一点,我正在扩展UrlHelper,但我不喜欢语义,因为UrlHelper应该使用URL和HtmlHelper与HTML。我想用这种方法扩展HtmlHelper而不是UrlHelper。
我的问题是我现在不知道如何从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));
}
由于
答案 0 :(得分:23)
您可以自己实例化UrlHelper
...
public static HtmlString AnchorLink(this HtmlHelper html, string text, string action, string anchor) {
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
}