2009-07-16 3 views
4

Это может быть ужасный вопрос бога, но я не уверен, почему это не позволит мне это сделать.(ASP.NET) Можете ли вы создать String.Format на ключ/значение web.config?

У меня есть URL, который мне нужно сохранить в Web.config, который имеет динамический параметр, вытащенный с веб-страницы.

Так что я хочу, чтобы хранить:

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

Это не позволяет мне сделать это. После {0} это ошибки на «&».

Может ли кто-нибудь сообщить мне, что я здесь делаю неправильно? Нужно ли мне избегать персонажа?

+0

вы пытались избежать еще? – Jason

ответ

12

Попробуйте вместо этого,

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

Уведомление сбежавших амперсандов.

+0

@JackM любые значения, которые вы хотите разместить в атрибуте значения тега add, просто должны быть закодированы в формате HTML. Если вам сложно определить, как правильно закодировать значение, вы можете написать что-то, что будет иметь .Net сделайте это для вас, используя метод HttpServerUtility.HtmlEncode: http://msdn.microsoft.com/en-us/library/ w3te6wfz.aspx –

+0

jpj625 является точной в его заявлении о том, что файлы Web.config хранятся в текстовых файлах XML. См. Этот вопрос StackOverflow о символах escape-кода XML: http://stackoverflow.com/questions/1091945/what-characters-do-i-need-to-escape-in-xml-documents –

3

Конфигурационные файлы являются XML и, как таковые, требуют, чтобы объекты XML были экранированы. Проблема не в {0} для использования при форматировании, это &, которые должны быть экранированы, как

&amp;