如何检查RouteData.Values是否不在asp.net webforms

时间:2015-11-04 12:30:26

标签: c# asp.net webforms url-routing

我有一个友好的网址,可以像

示例:

  1. www.abc.com/news /

  2. www.abc.com/news/year /

  3. 如果网址没有年份,那么我会显示最新的20个新闻项目,否则我会显示该微粒年份的新闻

    if (!string.IsNullOrEmpty(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString())) {
        _Year = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["YEAR"].ToString());
    }
    

    ABOVE代码生成以下错误

    [System.NullReferenceException] = {"Object reference not set to an instance of an object."}

    我不确定如何解决这个错误。如何检查路由值是否为null,以便我可以相应地执行代码。

    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()); }
    

1 个答案:

答案 0 :(得分:0)

我正在使用.ToString()创建问题。  而只是使用下面的代码

  if (RouteData.Values["YEAR"] != null)
    { _Year = int.Parse(RouteData.Values["YEAR"].ToString()); }