我有以下代码块,可以为公司创建一个Action Link。
Html.ActionLink(Html.Encode(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company",
new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%>
某些公司名称包含'&',并且呈现为&
我有没有办法Html.Encode
公司名称,但仍保留&
符号,而不是&
?
答案 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;%:,或@) ),这是恕我直言的最佳方式....