Net Core,使用html作为linkText参数

时间:2018-08-14 05:17:46

标签: c# asp.net-mvc asp.net-core .net-core

我需要创建一个带有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">&lt;svg class="icon"&gt;&lt;use href="#chevron-left"&gt;&lt;/use&gt;&lt;/svg&gt;</a>

因此,不会在html上呈现字符串linkText。有谁知道我该如何克服?因此,我得到了常规的html作为链接文本,如下所示:

<svg class="icon"><use href="#chevron-left"></use></svg>

2 个答案:

答案 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());