(ASP.NET)能否在web.config的键/值上执行String.Format操作?

4

这可能是一个很糟糕的问题,但我不确定为什么它不让我这样做。

我有一个需要存储在Web.config中的URL,其中包含从网页中提取的动态参数。

所以我想要存储:

        <add key="TestURL" 
value="https://test/subscribe?msisdn={0}&code=1&pass=2"/>

它不允许我这样做。在 {0} 后,它在 "&" 处出现错误。

有人可以告诉我我在这里做错了什么吗?我需要转义字符吗?

2个回答

12

可以尝试使用这个方法代替,

<add key="TestURL" value="https://test/subscribe?msisdn={0}&amp;code=1&amp;pass=2"/>

注意转义的 '&' 符号。


@JackM 无论您想在添加标签值属性中放置什么值,都需要进行HTML编码。 如果您不知道如何正确地对值进行编码,可以编写一个使用HttpServerUtility.HtmlEncode方法让.Net自动完成的程序:http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx - Spencer Ruport
jpj625的说法是准确的,Web.config文件存储在XML文本文件中。请参阅此StackOverflow问题了解有关XML文档转义字符的信息: https://dev59.com/_XNA5IYBdhLWcg3wGJwV - codo-sapien

3

配置文件是XML格式的,因此需要转义XML实体。问题不在于您用于格式化的{0},而是必须转义的&。

&amp;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接