簡體   English   中英

HtmlHelper中的RouteLink?

[英]RouteLink in HtmlHelper?

如何在自定義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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM