В контексте страницы ASP.NET я могу использовать Request.QueryString для получения коллекции пар ключ/значение в части строки запроса в URI.Проверьте, существует ли неназначенная переменная в Request.QueryString
Например, если я загружаю свою страницу с помощью 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
Почему вы не можете просто проверить «нуль»? 'If (Request.QueryString [" test "]! = Null)' – JonH
@JonH: Поскольку 'Request.QueryString [" test "]' возвращает 'null', существует ли тест в строке запроса или нет. –
ха? Я не уверен, что вы имеете в виду, он вернет == null, если он не видит тест в строке запроса, иначе он вернется! = Null, и если это так, вы можете получить значение теста. Я не вижу проблемы. – JonH