次のようなURLがある場合:
http://www.mysite.com/?MyTest=
MyTest は、リクエスト オブジェクトのクエリ文字列のキーとして表示されます。
次のように = 記号を削除すると:
クエリ文字列キー (または必要に応じて AllKeys) に表示されなくなりました。
このキーが存在するかどうかを確認するにはどうすればよいですか?
次のようなURLがある場合:
http://www.mysite.com/?MyTest=
MyTest は、リクエスト オブジェクトのクエリ文字列のキーとして表示されます。
次のように = 記号を削除すると:
クエリ文字列キー (または必要に応じて AllKeys) に表示されなくなりました。
このキーが存在するかどうかを確認するにはどうすればよいですか?
これは非常に奇妙な動作です。= 記号がない場合、Request によって返される QueryString オブジェクトのカウントは 1 で、値は MyTest でキーは null です。
QueryString をテストして、期待する値が含まれているかどうかを確認できます。
if(Request.QueryString.ToString().Contains("MyTest"))
{
// Do stuff
}
編集:この回答は、キーレスパラメータで何が起こっているかについてもう少し説明します(受け入れられた回答を過ぎてスクロールします)。
Request.QueryString[null]
またはできると思いますRequest.QueryString.GetValues(null)
。
null
。これらを取得するために使用します。両方のケースを確認するには、次のようにします。
bool myTestPresent = Request.QueryString["MyTest"] != null
|| Request.QueryString.GetValues(null).Contains("MyTest", StringComparer.OrdinalIgnoreCase);
ToString()
関数を使用する必要があります
if (Request.QueryString.ToString() == "MyTest")
{
//do something
}