我需要创建一个带有svg图标的链接,并且需要使用
RouteLink(this Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper htmlHelper, string linkText, string routeName, object routeValues, object htmlAttributes)
来自Microsoft.AspNetCore.Mvc.Rendering
。
如果我执行以下操作:
var link = html.RouteLink("<svg class=\"icon\"><use href=\"#chevron-left\"></use></svg>", model.RouteActionName, model.RouteValues, new { title = "Previous page" });
然后我得到
<a href="/heropoints/history/page/1" title="Previous Page"><svg class="icon"><use href="#chevron-left"></use></svg></a>
因此,不会在html上呈现字符串linkText
。有谁知道我该如何克服?因此,我得到了常规的html作为链接文本,如下所示:
<svg class="icon"><use href="#chevron-left"></use></svg>
答案 0 :(得分:0)
获取URL并自行呈现HTML:
<a href="@html.RouteUrl(Model.RouteActionName, model.RouteValues" title="Previous page">
<svg class="icon">
<use href="#chevron-left" />
</svg>
</a>
答案 1 :(得分:-1)
您可以使用Html.Raw()方法。
var link =Html.Raw(html.RouteLink("<svg class=\"icon\"><use href=\"#chevron-left\"></use></svg>", model.RouteActionName, model.RouteValues, new { title = "Previous page" }));
编辑:
var routelink =html.RouteLink("<svg class=\"icon\"><use href=\"#chevron-left\"></use></svg>", model.RouteActionName, model.RouteValues, new { title = "Previous page" });
var link = System.Net.WebUtility.HtmlDecode(routelink.ToHtmlString());