Como posso adicionar um e comercial para um valor em um valor do arquivo de configuração do aplicativo ASP.net/C#


209

Eu tenho um programa c # com valores em um arquivo de configuração. O que eu quero é armazenar e comercial para um valor de URL como ...

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

Mas eu recebo erros ao criar meu site. Oe comercial não é permitido. Eu tentei várias formas de escapar do e comercial sem sucesso. Alguém sabe a forma correta de fazer isso? Todas as sugestões são bem vindas.

Respostas:


420

Use " &amp;" em vez de "&".


2
Eu pensei seriamente que tinha tentado isso. Eu acho que perdi a trilha ";" no fim. De qualquer forma, funciona, então obrigado pelo feedback Eric.
Rob Segal

6
Substitua ("& amp;", "&") sempre que eu acessar essa configuração, caso contrário o navegador não a detectará corretamente quando você clicar no link: /
DLeh

Bem ... isso é muito decepcionante. Quero dizer, que o ConfigurationManager não remove automaticamente esses & xyl; caracteres ao obtê-los do arquivo de configuração.
Efrain 27/10

@ Evite não ter certeza do que o DLeh está falando exatamente, mas o unescape definitivamente funciona bem. Acabei de testar isso com appSettingsuma NameValueCollectionseção padrão e personalizada : o e comercial não tem escapamento adequado nos dois.
amigos estão dizendo sobre julealgon

@DLeh Se você estiver trabalhando com um ViewBag em um arquivo .cshtml, precisará chamar Html.Rawseu arquivo .cshtml para evitar que ele seja escapado pela estrutura.
user700390

25

Você já tentou isso?

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


0

Embora a resposta aceita aqui seja tecnicamente correta, parece haver alguma confusão entre os usuários com base nos comentários. Ao trabalhar com um ViewBag em um arquivo .cshtml, você deve usar @Html.Rawseus dados, depois de não terem sido escapados pelo ConfigurationManager, serão recuperados novamente. Use Html.Raw()para impedir que isso ocorra.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.