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 に答える