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