Asp.net:URL 在新选项卡中加载查询字符串时抛出对象引用未设置为实例错误

Asp.net: URL with Query string while loaded in new tab throws object reference not set to instance error

abc.aspx 是我的页面,在我的站点菜单导航中,我有 "apple"、banana" 等类别。单击菜单中的类别时,我将类别作为查询字符串附加在URL 如下所示

http://www.example.com/abc/abc.aspx?filter=apple

当用户单击菜单并加载此页面时,页面工作正常。但是,如果我们在新的 tab/new window 中单独加载此 URL,它会抛出 "Object reference not set to instance" 错误。此问题未在本地重现。

string filter = Request.QueryString["filter"]; 
Data[] dt_Data = Search.GetResults(filter);

此代码只是将查询字符串值传递给 GetResults 方法和 returns 我绑定到页面的数据对象数组。请注意,通过菜单导航时代码工作正常。如果页面以新的 tab/new window 加载,那么只有我收到错误。所以这里的代码实现好像没有什么问题

问题是,我的日志中捕获了 UrlReferrer,如下所示

Uri myReferrer = Request.UrlReferrer;
UrlRefer = myReferrer.ToString();

当我从菜单中单击类别时,URL 指的是 www.example.com。但是,当我在单独的 window/tab 中加载页面时,此 UrlReferrer 变为 null,并作为错误抛出。