对于我正在处理的应用程序,我需要让图像标题跨越多行。在我身边玩,我能够从这个标记中获得所需的效果:
<a href="http://www.stackoverflow.com">Stack<br>Overflow</a>
为我呈现了这个:
但是我无法找到生成HTML.ActionLink链接描述的正确方法,它将呈现这种输出。
答案 0 :(得分:3)
如果网址不是您网站的一部分,使用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
)