&符号正在被编码为&amp ;.有什么办法可以防止这个?

时间:2011-02-15 16:45:38

标签: c# asp.net-mvc html-encode ampersand

我有以下代码块,可以为公司创建一个Action Link。

Html.ActionLink(Html.Encode(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company",
                                                       new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%>

某些公司名称包含'&',并且呈现为&

我有没有办法Html.Encode公司名称,但仍保留&符号,而不是&

3 个答案:

答案 0 :(得分:4)

使用ActionLink帮助程序方法时似乎不需要编码。它内部编码:

How do I bypass the HTML encoding when using Html.ActionLink in Mvc?

答案 1 :(得分:3)

仔细检查生成的标记。 &应该在页面上显示的唯一方法是,如果您对&符号进行双重编码(因此页面的来源将显示&)。

这可能是因为您已经存储了已编码HTML的字符,或者您正在使用<%:(HTML会自动为您编码所有内容)而非您的视图中的<%=

答案 2 :(得分:0)

替换&amp;在保存它们之前将其替换为其他charachter,并在编码后更换它们(最有可能使用jquery)...我知道这听起来有点矫枉过正,但如果你真的需要Html.Encode(或者在Razor中使用&lt;%:,或@) ),这是恕我直言的最佳方式....