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.

Odpowiedzi:


420

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


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>


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.