1

我正在尝试更新我的基于 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

我将不胜感激有关或如何解决此问题的帮助

4

1 回答 1

2

使用如下:

HttpContext.Current.Request.RequestContext.RouteData.Values["XXXXXX"]

谢谢:https ://social.msdn.microsoft.com/Forums/tr-TR/c53d8d15-19d0-455b-b5a9-3d64d0793f99/usercontrol-iinde-routedatavaluesid?forum=aspnettr&prof=required

于 2016-02-03T09:01:03.200 回答