4

そのように構築された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 ヘルパーに関連付けられているすべての機能が失われます)。

4

2 に答える 2

7

アンカー内に HTML が必要な場合は、URL を生成するために手動でタグHtml.RouteLinkを作成する代わりに、 を使用しないでください (お気づきのように、デフォルトでリンク テキストを HTML エンコードするため) 。aUrl.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または、独自の非エンコーディングヘルパーを作成することもできます。

于 2012-08-24T11:43:33.390 に答える
-1

HtmlHelper.Raw()を使用できます。そうは言っても、モデル/ビュー モデルに HTML を保持することはおそらく良い考えではありません。これは、モデルとプレゼンテーションの分離の原則に反し、セキュリティ上の危険でもあります。

于 2012-08-24T11:44:04.997 に答える