Jak dodać znak „+” dla wartości w wartości pliku konfiguracyjnego aplikacji ASP.net/C#

209

Mam program w języku C # z wartościami w pliku konfiguracyjnym. Chcę przechowywać znaki handlowe dla wartości adresu URL takiej jak ...

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

Ale dostaję błędy podczas budowania mojej witryny. Znak ampersand jest niedozwolony. Próbowałem różnych form ucieczki z ampersands bezskutecznie. Czy ktoś wie o właściwej formie, aby to zrobić? Wszystkie sugestie są mile widziane.

Rob Segal
źródło

Odpowiedzi:

420

Użyj „ &amp;” zamiast „&”.

Eric Rosenberger
źródło
2
Poważnie myślałem, że tego spróbowałem. Wydaje mi się, że przegapiłem końcowy „;” na końcu. W każdym razie to działa, więc dziękuję za opinię Eric.
Rob Segal,
6
To działa, ale muszę wstawić ciąg. Zastąp („& amp;”, „&”) zawsze, gdy uzyskuję dostęp do tego ustawienia, w przeciwnym razie przeglądarka nie wykryje go poprawnie po kliknięciu linku: /
DLeh
Cóż ... to dość rozczarowujące. Mam na myśli, że ConfigurationManager nie usuwa automatycznie tych scen z & xyl; znaki podczas pobierania ich z pliku konfiguracyjnego.
Efrain
@Efrain nie jest pewien, o czym dokładnie mówi DLeh, ale unescape zdecydowanie działa dobrze. Właśnie przetestowałem to z sekcją standardową appSettingsi niestandardową NameValueCollection: znak ampersand jest poprawnie odwzorowany na obu.
julealgon
@DLeh Jeśli pracujesz z ViewBag w pliku .cshtml, musisz wywołać Html.Rawswój plik .cshtml, aby zapobiec ucieczce go przez środowisko.
użytkownik700390
25

Próbowałeś tego?

<appSettings>  
  <add key="myurl" value="http://www.myurl.com?&amp;cid=&amp;sid="/>
<appSettings>
BenAlabaster
źródło
0

Chociaż przyjęta tutaj odpowiedź jest poprawna technicznie, wydaje się, że wśród użytkowników istnieje pewne zamieszanie w oparciu o komentarze. Pracując z ViewBag w pliku .cshtml, musisz użyć, w @Html.Rawprzeciwnym razie twoje dane, po tym, jak zostaną usunięte przez Menedżera konfiguracji, zostaną ponownie usunięte . Użyj, Html.Raw()aby temu zapobiec.

użytkownik700390
źródło