[解決済み] .NET Coreでクエリ文字列を解析して変更する
質問
私はクエリ文字列を含む絶対的なURIを与えられています。私は安全にクエリ文字列に値を追加し、既存のパラメータを変更するために探しています。
私は
&foo=bar
を追加したり、正規表現を使用したりすることは避けたいと思います。むしろ、私はこれを正しく行い、エスケープを処理することが分かっている組み込みのメカニズムを使用したいのです。
私は
が見つかりました。
a
トン
を使用している回答は、すべて
HttpUtility
. しかし、ASP.NET Coreでは、System.Webアセンブリはもう存在しません。
HttpUtility
.
ASP.NET Coreでコアランタイムをターゲットにしながらこれを行うには、どのような方法が適切でしょうか。
どのように解決するのですか?
ASP.NET Core 1 または 2 を使用している場合は、次のようにします。
Microsoft.AspNetCore.WebUtilities.QueryHelpers
の中に
マイクロソフト.AspNetCore.WebUtilities
パッケージに含まれています。
ASP.NET Core 3.0以降を使用している場合。
WebUtilities
は現在 ASP.NET SDK の一部であり、個別の nuget パッケージの参照は必要ありません。
辞書にパースするために
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
とは異なり
ParseQueryString
とは異なり、これは
IDictionary<string, string[]>
を、ASP.NET Core 1.xでは
IDictionary<string, StringValues>
のように、ASP.NET Core 2.x以上では、値は文字列のコレクションになります。このように、同じ名前の複数のクエリ文字列パラメータを辞書で処理することができます。
クエリ文字列の上にパラメータを追加したい場合は、別のメソッドで
QueryHelpers
:
var parametersToAdd = new System.Collections.Generic.Dictionary<string, string> { { "resource", "foo" } };
var someUrl = "http://www.google.com";
var newUri = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(someUrl, parametersToAdd);
.net core 2.2 を使用すると、次の方法でクエリ文字列を取得できます。
var request = HttpContext.Request;
var query = request.Query;
foreach (var item in query){
Debug.WriteLine(item)
}
キーと値のペアのコレクションを得ることができます。
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
関連
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み] .NETで文字列を改行で分割する最も簡単な方法とは?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] base64文字列をエンコード、デコードするにはどうしたらいいですか?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み】.NET Coreがインストールされているかどうかを判断する方法
-
[解決済み】コマンド dotnet ef が見つかりません。
-
[解決済み】.NET CoreとASP.NET Coreの比較
-
[解決済み】.net coreでappsettings.jsonから値を取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】クエリ文字列に値を追加する
-
[解決済み】System.Net.HttpClientのget用クエリ文字列の構築