1

我对asp.net中的查询字符串有疑问:

带有查询字符串参数的标准查询字符串是"www.mysity.url?key1=value1&key2=value2",但我只需要检查是否有查询字符串键......是的,正确的决定之一:www.mysite.url?reset=true,但是这对我来说多余的语法。

在标记中我使用类似的东西"<a href='UrlHelper.GetResetUrl()'>Reset</a>",这个方法返回"www.mysity.url?reset",但在用户端标记中我有“重置”

4

3 回答 3

5

如果您不指定参数的名称,则将其视为null.

它的价值是reset

因此,您必须按如下方式进行检查:

if(Request.QueryString[null]=="reset")
{
    //Take some reset action
}
于 2012-09-07T10:21:59.537 回答
0

所有处理查询字符串参数的代码都应该不区分大小写。浏览器(或互联网基础设施的一部分?)可能会转换这种情况。

检查查询字符串中是否存在重置参数的一种方法:

bool reset = Request.Url.Query.IndexOf("reset", StringComparison.CurrentCultureIgnoreCase) > -1;
于 2012-09-07T10:13:12.070 回答
0

一个快速而肮脏的解决方案是:

if(Request.Url.Query.Contains("?reset"))
{
    // ok we have a reset
}

假设您有一个标准的重置调用,询问为:www.mysity.url?reset并且重置 url 没有其他参数。如果有,您可以简单地检查reset关键字。

这段代码HttpContext.Current.Request["reset"]总是返回 null,所以如果你想让它变得困难,下一个最好的办法是在 url 之后手动分析你的密钥。

于 2012-09-07T10:13:12.050 回答