C# 如果查询字符串有多个值,如何返回该字符串的第一个值?
考虑这样一个url:C# 如果查询字符串有多个值,如何返回该字符串的第一个值?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,考虑这样一个url: http://host.com?q=1&o=2&q=1 如果我运行Request.QueryString[“q”],我会得到两次值 如果我运行Request.QueryString[“q”].FirstOrDefault().ToString()我似乎得到了“2” 如果有多个值,如何返回查询字符串的第一个值?不确定microsoft如何处理这件事,我看到的是,如果我们用多个值传递同一个键,那么.NET framework将值视为逗号分隔的字符串 i、 e
http://host.com?q=1&o=2&q=1
如果我运行
Request.QueryString[“q”]
,我会得到两次值
如果我运行Request.QueryString[“q”].FirstOrDefault().ToString()
我似乎得到了“2”
如果有多个值,如何返回查询字符串的第一个值?不确定microsoft如何处理这件事,我看到的是,如果我们用多个值传递同一个键,那么.NET framework将值视为逗号分隔的字符串 i、 e 如果查询类似于“?q=10&o=2&q=11” 然后 获取第一个值的唯一方法是使用逗号分隔
Request.QueryString["q"].Split(',')[0]
如果有人有同样的问题。 试试这个:
Request.QueryString.GetValues(“q”)?.FirstOrDefault()代码>
或
或
这应该是另一个&
结尾吗?@NiMA有时这些事情超出了你的想象control@NiMa有几种方法可以实现这一点,但通常都来自于
或具有相同名称的相关复选框列表,例如在调查中“早餐吃什么-勾选一个或多个选项”@NiMa我们可以多次使用相同名称的查询字符串,比如/page.aspx?ProductID=1&ProductID=15&ProductID=25我不明白您是如何从第二个代码片段中获得2
。
Request.QueryString["q"].Split(',')[0]
var count=0;
var twince=string.Empty;
foreach(var item in Request.QueryString["q"])
{
twince=item;
count++;
if(count==2)
break;
}
var twince=Request.QueryString["q"].Split(',')[1];
var first=QueryString["q"].FirstOrDefault;
var twince=Request.QueryString["q"].FirstOrDefault(frs=>frs!=first);