QueryString是否包含某个Key

yas 2009-10-27 10:23:55
/login.aspx?login&username=test&password=123

如何利用QueryString对象判断是否包含login这个key呢
如果直接取得话
QueryString["login"]=null
和URL没有带login的效果是一样的
...全文
245 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2009-10-27
  • 打赏
  • 举报
回复
context.Request.RawUrl.ToLower().contain("login");
那这样也行吧,
yas 2009-10-27
  • 打赏
  • 举报
回复
看来在这里继续问下去也是无解

暂时自己用

new Regex(@"(\?|\&)login($|\&|\=)").IsMatch(context.Request.RawUrl);

Aslangg 2009-10-27
  • 打赏
  • 举报
回复
楼主,你看这个行不?
String[] array = Request.QueryString.AllKeys;
if (array.Contains("login"))
{
// to do
}
hl429 2009-10-27
  • 打赏
  • 举报
回复
传参的格式不正确吧。一般都是 login.aspx?a=ddd&b=ddd 你的login后面什么都没有,直接跟了一个&号,当然会是null值了。你这个地址的有效参数,只有两个,一个是用户名,一个是密码。如果你在login后面加一个=号,估计就不会是null了,而且是空字符串了。
guyehanxinlei 2009-10-27
  • 打赏
  • 举报
回复

if (Request.Params["Login"] != null)
{
//
}
else
{
//
}
Hamsic 2009-10-27
  • 打赏
  • 举报
回复

获取URL以后 截字符串不就得了...
flyerwing 2009-10-27
  • 打赏
  • 举报
回复
参数为空,可是键名没办法获取,给个东西不成吗?
login.aspx?login=true&username=test&password=123
lovexilove 2009-10-27
  • 打赏
  • 举报
回复
/login.aspx?login&username=test&password=123
你没发现你这个参数&有问题?
这样怎么能够很好的取到?后面的值
yas 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tchjl2007 的回复:]
C# codeif(Request.Url.ToString().IndexOf("login")>1)
{//todo }else
{//todo }
[/Quote]

你这个更夸张 ......

至于为什么,自己试验试验吧
Hamsic 2009-10-27
  • 打赏
  • 举报
回复
			if(Request.Url.ToString().IndexOf("login")>1)
{
//todo
}
else
{
//todo
}
yas 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ivws_19 的回复:]
Request.QueryString.Count
看到底有几个参数
[/Quote]
这个方法不严谨
网上曾经找到这样的方法
NameValueCollection nvc = new NameValueCollection(Request.QueryString);
nvc.remove("login");
然后比较 nvc.count 和 QueryString.count
但这样似乎比较繁琐,我认为也影响效率
ivws_19 2009-10-27
  • 打赏
  • 举报
回复
Request.QueryString.Count
看到底有几个参数
yas 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ojlovecd 的回复:]
C# codeif(Array.IndexOf(Request.QueryString.AllKeys,"login")>-1)
{// to do...}
[/Quote]
你的方法也不行,请测试一下
我姓区不姓区 2009-10-27
  • 打赏
  • 举报
回复

if(Array.IndexOf(Request.QueryString.AllKeys,"login")>-1)
{
// to do...
}
yas 2009-10-27
  • 打赏
  • 举报
回复
不知道楼上测试了没有,我测试得到的结果是Null,
qldsrx 2009-10-27
  • 打赏
  • 举报
回复
你写的那个判断是否为null就可以做到,由于QueryString肯定是字符串,如果Url里带有login却没有给出值,那QueryString["login"]=="";
yas 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 nyq1999 的回复:]
  只能取到UrlParameter然后正则匹配了,不过大小写忽略而已
[/Quote]

大小写或略是个坏习惯,我喜欢区分开
yas 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 flyerwing 的回复:]
context.Request.RawUrl.ToLower().contain("login");
那这样也行吧,
[/Quote]

如果有 login.aspx?logintype=1
是不是就出问题了?
nyq1999 2009-10-27
  • 打赏
  • 举报
回复
只能取到UrlParameter然后正则匹配了,不过大小写忽略而已

110,531

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧