我正在写这个函数:
public static String QueryString(string queryStringKey)
{
if (HttpContext.Current.Request.QueryString[queryStringKey] != null)
{
if (HttpContext.Current.Request.QueryString[queryStringKey].ToString() != string.Empty)
return HttpContext.Current.Request.QueryString.GetValues(1).ToString();
}
return "NAQ";
}
我想从querystring参数中获取一个值。 例如,我发送“page”到我的功能,网址是:“sth.com/?page=1&page=2” 和功能回到我身边:“1,2”;但我想要第一个值:“1”,怎么样?
答案 0 :(得分:1)
GetValues
会返回string[]
。数组是基于零的,所以你使用array[0]
得到第一个元素,你在代码中使用GetValues(1)
,我假设你想要第一个。
您还可以使用Enumerable.First
扩展方法:
Request.QueryString.GetValues("page").First();
由于GetValues
不是空数组而是null
,如果密钥不存在,则需要明确检查(FirstOrDefault
不起作用):
public static String QueryString(string queryStringKey)
{
if (HttpContext.Current != null && HttpContext.Current.Request != null)
{
string[] values = HttpContext.Current.Request.QueryString.GetValues("queryStringKey");
if (values != null) return values.First();
}
return "NAQ";
}
答案 1 :(得分:0)
更好的方法是 -
public static String QueryString(string queryStringKey)
{
if (HttpContext.Current!=null && HttpContext.Current.Request!=null && !string.IsNullOrEmpty(HttpContext.Current.Request.QueryString[queryStringKey])
{
return HttpContext.Current.Request.QueryString.GetValues(queryStringKey).First();
}
return "NAQ";
}