Как вызвать UrlHelper при написании расширения для HtmlHelper

У меня есть проект ASP.NET MVC3, и я пишу несколько методов расширения, которые возвращают HTML, но мне нужен UrlHelper для их рендеринга. Для этого я расширяю UrlHelper, но мне не нравится семантика, потому что UrlHelper должен работать с URL-адресами, а HtmlHelper — с HTML. Я хотел бы расширить HtmlHelper с помощью этих методов вместо UrlHelper.

Моя проблема в том, что я не знаю, как получить доступ к UrlHelper из метода расширения HtmlHelper, возможно ли это вообще? Или я должен придерживаться расширений 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));
}

Спасибо

11
задан NightElfik 13 April 2012 в 09:48
поделиться