RouteData.Values [“xxx”]在asp.net用户控件中生成错误

时间:2013-03-18 10:22:27

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

我正在尝试更新我的基于asp.net webform的网站以使用路由功能,但我无法在userControl.ascx中修复一个错误。

我可以使用RouteData.Values["language"].ToString()访问主页面中的查询字符串值,但是当我需要在用户控件中使用查询字符串值时,同样失败。

我甚至试过使用HttpContext.Current.Request.RequestContext.RouteData.Values["language"].ToString();

但没有运气。

下面是我试图捕获查询字符串的代码示例

int LangID = 1;
int ArticleID = 0;
int PageID = 0;
int IssueID = 0;
int CategoryID = 0;
string language = string.Empty;

   if (string.IsNullOrEmpty(Request["PageID"]))
    {

        language = HttpContext.Current.Request.RequestContext.RouteData.Values["language"].ToString();
        LangID = Helper.GetLanguageID(language);
        ArticleID = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["aid"].ToString());
        PageID = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["PageID"].ToString());
        IssueID = int.Parse(HttpContext.Current.Request.RequestContext.RouteData.Values["issue"].ToString());
    }
    else
    {
        language = Request["language"];
        LangID = Helper.GetLanguageID(language);
        ArticleID = int.Parse(Request["aid"]);
        PageID = int.Parse(Request["PageID"]);
        IssueID = int.Parse(Request["issue"]);
    }

我收到此声明的错误信息 language = HttpContext.Current.Request.RequestContext.RouteData.Values["language"].ToString();

错误消息:

System.NullReferenceException was caught
  Message=Object reference not set to an instance of an object.
  Source=App_Web_odw0cnkk

我很感激这方面的帮助或如何解决这个问题

1 个答案:

答案 0 :(得分:2)