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.