2

次のようなURLがある場合:

http://www.mysite.com/?MyTest=

MyTest は、リクエスト オブジェクトのクエリ文字列のキーとして表示されます。

次のように = 記号を削除すると:

http://www.mysite.com/?MyTest

クエリ文字列キー (または必要に応じて AllKeys) に表示されなくなりました。

このキーが存在するかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

4

これは非常に奇妙な動作です。= 記号がない場合、Request によって返される QueryString オブジェクトのカウントは 1 で、値は MyTest でキーは null です。
QueryString をテストして、期待する値が含まれているかどうかを確認できます。

if(Request.QueryString.ToString().Contains("MyTest"))
{
    // Do stuff
}

編集:この回答は、キーレスパラメータで何が起こっているかについてもう少し説明します(受け入れられた回答を過ぎてスクロールします)。

于 2012-03-08T16:59:31.897 に答える
1

Request.QueryString[null]またはできると思いますRequest.QueryString.GetValues(null)


等号がないと MyTest はキーではなくなり、キーのない値になりますnull。これらを取得するために使用します。両方のケースを確認するには、次のようにします。

bool myTestPresent = Request.QueryString["MyTest"] != null
   || Request.QueryString.GetValues(null).Contains("MyTest", StringComparer.OrdinalIgnoreCase);
于 2012-03-08T17:35:43.860 に答える
0

ToString()関数を使用する必要があります

if (Request.QueryString.ToString() == "MyTest")
{
 //do something
}
于 2012-03-08T17:22:30.443 に答える