如何从querystrig中获取一个值

时间:2013-08-21 12:16:02

标签: asp.net return-value code-behind key-value qstring

我正在写这个函数:

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”,怎么样?

2 个答案:

答案 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";
}