ASP.NETページのコンテキスト内で、Request.QueryStringを使用して、URIのクエリ文字列部分のキーと値のペアのコレクションを取得できます。
たとえば、を使用してページを読み込むhttp://local/Default.aspx?test=value
と、次のコードを呼び出すことができます。
//http://local/Default.aspx?test=value
protected void Page_Load(object sender, EventArgs e)
{
string value = Request.QueryString["test"]; // == "value"
}
理想的には、テストが存在するかどうかを確認することです。これにより、を使用してページを呼び出しhttp://local/Default.aspx?test
、クエリ文字列にテストが存在するかどうかを示すブール値を取得できます。このようなもの:
//http://local/Default.aspx?test
protected void Page_Load(object sender, EventArgs e)
{
bool testExists = Request.QueryString.HasKey("test"); // == True
}
したがって、理想的には、テスト変数が文字列に存在するかどうかを示すブール値が必要です。
正規表現を使用して文字列をチェックすることもできると思いますが、もっとエレガントな解決策があるかどうか知りたいと思いました。
私は次のことを試しました:
//http://local/Default.aspx?test
Request.QueryString.AllKeys.Contains("test"); // == False (Should be true)
Request.QueryString.Keys[0]; // == null (Should be "test")
Request.QueryString.GetKey(0); // == null (Should be "test")
この動作は、たとえば、PHPとは異なります。
$testExists = isset($_REQUEST['test']); // == True