Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net中可选参数的处理_C#_Asp.net_Variables - Fatal编程技术网

C# asp.net中可选参数的处理

C# asp.net中可选参数的处理,c#,asp.net,variables,C#,Asp.net,Variables,我的内联网应用程序中有一个页面,其中有时附加变量,有时不附加变量。例如,在我的分页代码中,我有: MenuItem itemMessage = NavMenu.FindItem("First"); itemMessage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1&sid=6"; 对于其他部分,我有以下内容: MenuItem itemMessage = NavMenu.FindItem("First"); ite

我的内联网应用程序中有一个页面,其中有时附加变量,有时不附加变量。例如,在我的分页代码中,我有:

MenuItem itemMessage = NavMenu.FindItem("First");
itemMessage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1&sid=6";
对于其他部分,我有以下内容:

MenuItem itemMessage = NavMenu.FindItem("First");
itemMessage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1";
有时
sid
会传递到页面,有时则不会

问题是,在另一端,我试图读取如下值:

var queryStrings = HttpUtility.UrlDecode(Request.QueryString.ToString());
var arrQueryStrings = queryStrings.Split('&');
var part1 = arrQueryStrings[0];
var part2 = arrQueryStrings[1];
如果未传递
sid
,则第2部分将出现错误,因为它超出了数组的范围


知道如何处理吗?

使用查询字符串对象来请求特定项,而不是手动解析字符串

string part1 = Request.QueryString["page"];
string part2 = Request.QueryString["sid"];

if(part2 != null)
{//check if part2 is sent
}

看看这篇文章的第二个答案,这家伙只是在撤回一个变量。如果有两个,我需要向后拉两个,如果有一个,我需要向后拉一个。我想我可以检查查询字符串,看看是否存在“&”,因为这样我就可以知道是有两个变量还是只有一个变量。但我不知道如何在C中做到这一点。太好了!我觉得有一种更简单的方法。如果要将
sid
转换为整数,我将使用
string.IsNullOrWhiteSpace(part2)
而不仅仅是空检查。