ASP.net/C#アプリ構成ファイルの値にアンパサンドを追加するにはどうすればよいですか


209

設定ファイルに値を含むC#プログラムがあります。私が欲しいのは、次のようなURL値のアンパサンドを格納することです...

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

しかし、自分のサイトの構築中にエラーが発生します。アンパサンドは使用できません。アンパサンドを無用にエスケープするさまざまな形式を試しました。これを行うための正しいフォームを知っている人はいますか?すべての提案を歓迎します。

回答:


420

&amp;「&」の代わりに「」を使用します。


2
私はこれを試したと真剣に思った。末尾の「;」を逃したと思います 最後に。とにかくそれは機能しますフィードバックエリックに感謝します。
Rob Segal

6
この作品が、私はstring.Replaceを配置する必要があります(「&#038;」、「&」)私は、この設定にアクセスするwhereever、または他にあなたがリンクをクリックしたとき、ブラウザはそれを正しく検出しません:/
DLeh

まあ...それはかなり残念です。つまり、ConfigurationManagerはこれらの&xyl;を自動的にアンエスケープしません。構成ファイルから取得するときの文字。
Efrain 2017年

@EfrainはDLehが正確に何について話しているのかわかりませんが、unscapeは間違いなく正常に動作します。これを標準セクションとappSettingsカスタムNameValueCollectionセクションでテストしました。アンパサンドは両方で適切にエスケープされていません。
julealgon

@DLeh .cshtmlファイルでViewBagを使用している場合は、.cshtmlファイルを呼び出しHtml.Rawて、フレームワークによってエスケープされないようにする必要があります。
user700390



0

ここで受け入れられた答えは技術的に正しいですが、コメントに基づいてユーザー間でいくつかの混乱があるようです。.cshtmlファイルでViewBagを使用する@Html.Raw場合、それ以外の方法でデータを使用する必要があります。ConfigurationManager によってエスケープ解除された後、データは再度再エスケープされます。Html.Raw()これを防ぐために使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.