C# Ampersand被HTML编码为&;amp;。有什么办法防止这种情况发生吗?

C# Ampersand被HTML编码为&;amp;。有什么办法防止这种情况发生吗?,c#,asp.net-mvc,html-encode,ampersand,C#,Asp.net Mvc,Html Encode,Ampersand,我有下面一段代码为一家公司创建了一个操作链接 Html.ActionLink(Html.Encode(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company", new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%> 一些公司名称包含“

我有下面一段代码为一家公司创建了一个操作链接

Html.ActionLink(Html.Encode(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company",
                                                       new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%>
一些公司名称包含“&”,这被表示为
&


有没有一种方法可以
Html.对公司名称进行编码,但仍然保持
&
符号的外观,而不是
&

仔细检查生成的标记。只有这样,
&(因此页面的源代码将显示
&;amp;


这可能是由于存储已经用HTML编码的字符,或者您正在使用
Replace&在保存字符之前替换其他字符,然后在编码后将其替换回来(很可能使用jquery)。。。我知道这听起来有些过分,但是如果你真的需要Html.Encode(或者当使用ActionLink助手方法时,你似乎不需要编码。它在内部编码:


您是否检查了数据的存储方式?您确定数据没有存储为“an&;example”,而实际上是作为“an&;example”输出到源代码?您使用的ASP.NET MVC版本是什么?您如何输出Html.ActionLink(
知道为什么这个被否决会很有帮助。它实际上对我很有用。也许有人愿意成为领导者,可以分享他们的想法。对于Razor:我是用
@Html.Encode(file.ReadAllText(“…”)
从一个txt文件中读取的,它对字符串进行了双重编码。切换到
@file.ReadAllText(…)
现在它只做一次。