HTML中的MVC RouteLink(HTML in MVC RouteLink)

2019-09-21 14:54发布

我有一个RouteLink建造像这样

<p class="articleLink">
    @MvcHelper.Html.RouteLink(article.Title, "Article_Route", new RouteValueDictionary() { { "articleId", article.Id }, { "seoUrl", article.SeoUrl } }))
</p>

然而, article.Title可能包含HTML即值可以是<em>Sample</em> Title这进而获取呈现像这样

<a href="/Article/111111/Sample-Title">&lt;em&gt;Sample&lt;/em&gt; Title</a>

有什么办法来防止逃跑,而是被当作实际的HTML代码的HTML? 或者我需要建立一个标准的HTML <a href...链接在此情况下(从而失去与RouteLink助手相关联的所有细微)。

Answer 1:

如果你想你的HTML锚不使用内部Html.RouteLink (因为这将HTML编码默认情况下,当你看到的链接文字),而不是建立自己的a手工用标签Url.RouteUrl生成的网址:

<p class="articleLink">
    <a href="@(Url.RouteUrl("Article_Route",
                   new RouteValueDictionary() 
                      { { "articleId", article.Id }, 
                        { "seoUrl", article.SeoUrl } }))">
        @Html.Raw(article.Title)
    </a>
</p>

或者你可以创建自己的非编码RouteLink帮手。



Answer 2:

您可以使用HtmlHelper.Raw() 。 话虽如此,它可能不是一个好主意,让任何HTML在你的模型/视图模型,这是对模型和介绍,也有安全隐患的分离的原则。



文章来源: HTML in MVC RouteLink