uriAddress.Ssegments[1]引发错误-Index超出了数组的界限
本文关键字:数组 界限 -Index 错误 Ssegments uriAddress | 更新日期: 2023-09-27 18:28:14
我在global.asa文件中有以下代码。目的是从URL中获取片段,然后相应地运行代码。
protected void Application_BeginRequest(object sender, EventArgs e)
{
Uri uriAddress = new Uri(Request.Url.AbsoluteUri);
if (!String.IsNullOrEmpty(uriAddress.Segments[1]))
{
//do stuff
}
}
不幸的是,如果URL中没有分段,我会得到"索引在数组的边界之外"的错误。我该如何克服这个错误?
在尝试获取元素之前,请检查数组的大小:
if (uriAddress.Segments.Length > 0) {
var segment = uriAddress.Segments[0];
}
另外,请注意,C#使用基于零的数组,因此第一个元素将是0,而不是1。
更改"if"语句以检查Segments数组的长度。
if(uriAddress.Segments.Length > 0 && !String.IsNullOrEmpty(uriAddress.Segments[1]))
{
//do stuff
}