2011-07-29 58 views
1

對於我正在處理的應用程序,我需要將圖像標題跨越多行。玩了我能得到這個標記預期的效果:獲取Html.ActionLink以生成多行鏈接

<a href="http://www.stackoverflow.com">Stack<br>Overflow</a> 

渲染這對我來說:

Stack
Overflow

但我一直無法找到生成的鏈接描述的正確方法用於呈現這種輸出的HTML.ActionLink。

回答

2

如果網址不是您網站的一部分,使用HTML幫助程序生成此鏈接不會帶來太多價值。相反,只需按原樣編寫即可。如果這是你的網站的一部分,你可以使用路由到達你可以寫一個自定義的HTML幫助不HTML默認編碼鏈接文本地址:

public static class HtmlExtensions 
{ 
    public static MvcHtmlString MyActonLink(
     this HtmlHelper html, 
     string linkText, 
     string action, 
     string controller, 
     object routeValues, 
     object htmlAttributes 
    ) 
    { 
     var urlHelper = new UrlHelper(html.ViewContext.RequestContext); 
     var url = urlHelper.Action(action, controller, routeValues); 
     var anchor = new TagBuilder("a"); 
     anchor.InnerHtml = linkText; 
     anchor.Attributes["href"] = url; 
     anchor.MergeAttributes(new RouteValueDictionary(htmlAttributes)); 
     return MvcHtmlString.Create(anchor.ToString()); 
    } 
} 

,並在您的視圖:

@Html.MyActonLink(
    "Stack<br/>Overflow", // linkText 
    "MyAction",    // actionName 
    "MyController",   // controllerName 
    new { id = "123" },  // routeValues 
    new { @class = "foo" } // htmlAttributes 
) 
+0

這個解決方案非常好。謝謝 – MikeJ