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中没有分段,我会得到"索引在数组的边界之外"的错误。我该如何克服这个错误?

uriAddress.Ssegments[1]引发错误-Index超出了数组的界限

在尝试获取元素之前,请检查数组的大小:

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
}