簡體   English   中英

MVC RouteLink中的HTML

[英]HTML in MVC RouteLink

我有一個像這樣構建的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助手相關的所有細節)。

如果你想在你的錨內部使用HTML,請不要使用Html.RouteLink (因為默認情況下會對鏈接文本進行HTML編碼),而不是使用Url.RouteUrl手動構建你a標記來生成網址:

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

或者您可以創建自己的非編碼RouteLink助手。

您可以使用HtmlHelper.Raw() 話雖如此,在模型/視圖模型中保留任何HTML可能不是一個好主意,這違反了模型和表示的分離原則,也存在安全隱患。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM