如何在ASP.net/C#应用程序配置文件值中为值添加与号


209

我有一个C#程序,其配置文件中包含值。我想要的是为一个url值存储&符号,例如...

<appSettings>
  <add key="myurl" value="http://www.myurl.com?&cid=&sid="/>
</appSettings>

但是我在构建网站时遇到错误。不允许使用&号。我已经尝试过各种形式的转义“&”号的方法,但是都没有用。有人知道正确的格式吗?欢迎所有建议。

Answers:


420

使用“ &amp;”代替“&”。


2
我以为我已经尝试过了。我想我错过了结尾的“;” 在末尾。无论如何,它的确有效,因此感谢Eric的反馈。
罗布·西格尔

6
此方法有效,但无论何时我访问此设置,我都必须放置string.Replace(“&amp;”,“&”),否则当您单击链接时浏览器将无法正确检测到它:/
DLeh

好吧...真令人失望。我的意思是,ConfigurationManager不会自动取消对这些&xyl;的转义。从配置文件获取字符时的字符。
伊夫兰(Efrain)

@Efrain不确定DLeh到底在说什么,但是unescape肯定可以正常工作。刚刚使用标准appSettings和自定义NameValueCollection部分对此进行了测试:“&”号在两者上均未正确转义。
julealgon

@DLeh如果正在使用.cshtml文件中的ViewBag,则需要调用Html.Raw.cshtml文件以防止框架对其进行转义。
user700390

25

你有尝试过吗?

<appSettings>  
  <add key="myurl" value="http://www.myurl.com?&amp;cid=&amp;sid="/>
<appSettings>


0

尽管此处接受的答案在技术上是正确的,但基于评论,用户之间似乎还是有些困惑。在.cshtml文件中使用ViewBag时,必须使用@Html.Raw其他方式,否则您的数据在被ConfigurationManager 取消转义后,将再次重新转义。使用Html.Raw(),以防止这种情况发生。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.