MVC RouteLink中的HTML

时间:2012-08-24 11:36:54

标签: asp.net-mvc asp.net-mvc-3

我有一个像这样构建的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> 则会像这样呈现

<a href...

有没有办法阻止HTML被转义,而是被视为实际的HTML?或者在这种情况下我是否需要创建标准的HTML {{1}}链接(从而失去与RouteLink助手相关的所有细节)。

2 个答案:

答案 0 :(得分:6)

如果你想在你的主播内部使用HTML,请不要使用Html.RouteLink(因为默认情况下会对链接文本进行HTML编码),而不是使用{手动构建a标记{1}}生成网址:

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> 帮助程序。

答案 1 :(得分:-1)

您可以使用HtmlHelper.Raw()。话虽如此,在模型/视图模型中保留任何HTML可能不是一个好主意,这违反了模型和表示的分离原则,也存在安全隐患。