对于我正在开发的应用程序,我需要让图像标题跨越多行。通过尝试,我能够从此标记中获得所需的效果:
<a href="http://www.stackoverflow.com">Stack<br>Overflow</a>
为我渲染了这个:
但是,我一直无法找到正确的方法来生成 HTML.ActionLink 的链接描述,以呈现此类输出。
最佳答案
如果网址不是您网站的一部分,那么使用 HTML 帮助程序生成此链接不会带来太多值(value)。相反,只需按原样编写即可。如果它是您网站的一部分,并且您可以使用路由来到达地址,您可以编写一个自定义 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
)
关于html - 获取 Html.ActionLink 生成多行链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868736/