【问题标题】:How can I add an ampersand for a value in a ASP.net/C# app config file value如何为 ASP.net/C# 应用程序配置文件值中的值添加与号
【发布时间】:2008-12-17 21:45:28
【问题描述】:

我有一个 C# 程序,其值在配置文件中。我想要的是为像这样的 url 值存储 &

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

但我在构建网站时遇到错误。 & 号是不允许的。我尝试了各种形式的转义&符号无济于事。有人知道这样做的正确形式吗?欢迎所有建议。

【问题讨论】:

    标签: c# asp.net web-config


    【解决方案1】:

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

    【讨论】:

    • 我真的以为我已经尝试过了。我想我错过了尾随的“;”在末尾。无论如何,它确实有效,所以感谢 Eric 的反馈。
    • 这行得通,但是我必须在我访问此设置的任何地方放置一个 string.Replace("&","&") ,否则当您单击时浏览器将无法正确检测到它链接:/
    • 嗯...这很令人失望。我的意思是,ConfigurationManager 不会自动取消转义这些 &xyl;从配置文件中获取字符时。
    • @Efrain 不确定 DLeh 到底在说什么,但 unescape 肯定可以正常工作。刚刚使用标准appSettings 和自定义NameValueCollection 部分对此进行了测试:& 符号在两者上都没有正确转义。
    【解决方案2】:

    你试过了吗?

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

    【讨论】:

      【解决方案3】:

      我认为您应该能够使用 HTML 转义字符 (&)。可以在http://www.theukwebdesigncompany.com/articles/entity-escape-characters.php找到它们

      【讨论】:

      • 此链接目前未显示任何文章。
      • 链接仍然失效。
      【解决方案4】:

      尽管此处接受的答案在技术上是正确的,但基于 cmets 的用户之间似乎存在一些混淆。在 .cshtml 文件中使用 ViewBag 时,您必须使用 @Html.Raw 否则您的数据在被 ConfigurationManager 转义后将再次重新转义。使用Html.Raw() 来防止这种情况发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-27
        • 2010-11-06
        • 2019-11-09
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多