質問

カスタムhtmlhelperでroutelinkを作成するにはどうすればよいですか?部分的なビューで作成する方法は知っていますが、Routelinkを使用してカスタムHTMLHELPER拡張法で新しいリンクを構築したいと思います。これを達成する方法は?

更新:htmlhelper.generateroutelinkに気づきました。しかし、パラメーターとして何を入れる必要がありますか?

役に立ちましたか?

解決

これが例です。リンクを包みます div あなたの結果のHTMLが次のようになるように、指定されたクラスでタグを付けてください:

<div class="foo"><a href="/home/index">Some text</a></div>

次の拡張法を記述できます。

public static class HtmlExtensions
{
    public static MvcHtmlString CustomRouteLink(
        this HtmlHelper htmlHelper, 
        string className, 
        string linkText, 
        object routeValues
    )
    {
        var div = new TagBuilder("div");
        div.MergeAttribute("class", className);
        div.InnerHtml = htmlHelper.RouteLink(linkText, routeValues).ToHtmlString();
        return MvcHtmlString.Create(div.ToString());
    }
}

これは次のように使用できます。

<%= Html.CustomRouteLink("foo", "Some text", 
    new { action = "index", controller = "home" }) %>

そして、これにより、目的のマークアップが生成されます。他の の過負荷 RouteLink 必要に応じて使用できます。

他のヒント

urlhelperのインスタンスを取得したら、htmlhelperメソッドでやりたいことは何でもできるはずです

UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top