Mic*_*cah 41 asp.net-mvc html-encode
每当我使用Html.ActionLink时,它总是Html编码我的显示字符串.例如,我希望我的链接看起来像这样:
<a href="/posts/422/My-Post-Title-Here">More…</a>
Run Code Online (Sandbox Code Playgroud)
它输出如下:更多…
&hellip是"......",你想知道.
然而,actionlink输出实际文本"…" 作为链接文本.我有同样的问题,如果我想输出这个:
<a href="/posts/422/My-Post-Title-Here"><em>My-Post-Title-Here</em></a>
Run Code Online (Sandbox Code Playgroud)
我结束了: <em> My-Post-Title-Here </ em>
知道怎么做吗?
tva*_*son 79
看起来ActionLink总是在链接文本上使用调用HttpUtility.Encode.您可以使用UrlHelper生成href并自己构建锚标记.
<a href='@Url.Action("Posts", ...)'>More…</a>
Run Code Online (Sandbox Code Playgroud)
或者,您可以"解码"传递给ActionLink的字符串.在HTML中构建链接似乎更具可读性(对我而言) - 尤其是在Razor中.以下是相当的比较.
@Html.ActionLink(HttpUtility.HtmlDecode("More…"), "Posts", ...)
Run Code Online (Sandbox Code Playgroud)
小智 10
Sam给出的答案实际上是正确的,我在我的解决方案中使用它,所以我自己尝试了.您可能希望删除额外的括号,使其变为如下所示:
@Html.ActionLink(HttpUtility.HtmlDecode("&"), "Index", "Home")
Run Code Online (Sandbox Code Playgroud)
或者,只使用普通的Unicode省略字符\ u2026让MVC担心如何对其进行编码.除非有一些特别令人信服的理由,否则你需要一个hellip实体引用而不是字符引用,或者只是将字符包含为简单的UTF-8字节.
或者替代:只使用三个时期.省略号(U + 2026)是一个兼容性字符,仅包括往往前Unicode编码的往返.与简单的点相比,它让你很少.
| 归档时间: |
|
| 查看次数: |
25460 次 |
| 最近记录: |