我有error.aspx一页 如果用户访问该页面,它将page_load()使用方法URL获取错误路径,Request.QueryString["aspxerrorpath"]并且可以正常工作。
但是,如果用户直接访问该页面,则该页面将生成异常,因为该页面aspxerrorpath不存在。
如何检查aspxerrorpath是否存在?
我有error.aspx一页 如果用户访问该页面,它将page_load()使用方法URL获取错误路径,Request.QueryString["aspxerrorpath"]并且可以正常工作。
但是,如果用户直接访问该页面,则该页面将生成异常,因为该页面aspxerrorpath不存在。
如何检查aspxerrorpath是否存在?
Request.QueryString.Count != 0只会告诉您是否根本没有参数。
Answers:
您可以检查以下内容null:
if(Request.QueryString["aspxerrorpath"]!=null)
{
//your code that depends on aspxerrorpath here
}
检查参数的值:
// .NET < 4.0
if (string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]))
{
// not there!
}
// .NET >= 4.0
if (string.IsNullOrWhiteSpace(Request.QueryString["aspxerrorpath"]))
{
// not there!
}
如果不存在,则值为null,如果确实存在,但未设置任何值,则为空字符串。
我相信上面的内容比测试更适合您的需求null,因为空字符串对您的特定情况同样有害。
IsNullOrWhiteSpace?
要解决您的问题,请在页面的Page_Load方法上写以下行。
if (String.IsNullOrEmpty(Request.QueryString["aspxerrorpath"])) return;
.Net 4.0可以更仔细地查看null,空字符串或空格字符串,如下行所示使用它:
if(string.IsNullOrWhiteSpace(Request.QueryString["aspxerrorpath"])) return;
如果查询字符串没有aspxerrorpath,这将不会运行您的下一个语句(您的业务逻辑)。
认为您要查找的支票是这样的:
if(Request.QueryString["query"] != null)
它null之所以返回,是因为在该查询字符串中,该键没有任何值。