如何检查 RouteData.Values 是否不在 asp.net 网络表单中
How to check if RouteData.Values is not in asp.net webforms
我有一个友好的URL可以像
示例:
www.abc.com/news/
www.abc.com/news/年/
如果 url 没有年份那么我显示最新的 20 条新闻,否则我显示那个特定年份的新闻
if (!string.IsNullOrEmpty(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString())) {
_Year = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString());
}
以上代码生成以下错误
[System.NullReferenceException] = {"Object reference not set to an instance of an object."}
我不确定如何解决这个错误。我如何检查路由值是否为空,以便我可以相应地执行代码。
Global.asax代码
routes.MapPageRoute("news", "news/", "~/news.aspx", false,
new RouteValueDictionary {
{
"path", "page-not-found"
}, {
"pagename", "page-not-found"
}
});
routes.MapPageRoute("news_YearWise", "news/{YEAR}", "~/news.aspx", false,
new RouteValueDictionary {
{
"YEAR", "0"
}
},
new RouteValueDictionary {
{
"YEAR", "[0-9]{1,8}"
},
});
已解决:
if (RouteData.Values["YEAR"] != null)
{ _Year = int.Parse(RouteData.Values["YEAR"].ToString()); }
我使用的是 .ToString()
,这造成了问题。
而只是使用下面的代码
if (RouteData.Values["YEAR"] != null)
{ _Year = int.Parse(RouteData.Values["YEAR"].ToString()); }
我有一个友好的URL可以像
示例:
www.abc.com/news/
www.abc.com/news/年/
如果 url 没有年份那么我显示最新的 20 条新闻,否则我显示那个特定年份的新闻
if (!string.IsNullOrEmpty(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString())) {
_Year = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString());
}
以上代码生成以下错误
[System.NullReferenceException] = {"Object reference not set to an instance of an object."}
我不确定如何解决这个错误。我如何检查路由值是否为空,以便我可以相应地执行代码。
Global.asax代码
routes.MapPageRoute("news", "news/", "~/news.aspx", false,
new RouteValueDictionary {
{
"path", "page-not-found"
}, {
"pagename", "page-not-found"
}
});
routes.MapPageRoute("news_YearWise", "news/{YEAR}", "~/news.aspx", false,
new RouteValueDictionary {
{
"YEAR", "0"
}
},
new RouteValueDictionary {
{
"YEAR", "[0-9]{1,8}"
},
});
已解决:
if (RouteData.Values["YEAR"] != null)
{ _Year = int.Parse(RouteData.Values["YEAR"].ToString()); }
我使用的是 .ToString()
,这造成了问题。
而只是使用下面的代码
if (RouteData.Values["YEAR"] != null)
{ _Year = int.Parse(RouteData.Values["YEAR"].ToString()); }