【发布时间】:2013-03-18 10:22:26
【问题描述】:
我正在尝试更新我的基于 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
我将不胜感激有关或如何解决此问题的帮助
【问题讨论】:
-
你试过this.Page.RouteData.Values["language"].ToString(); ?
-
HttpContext.Current.Request.RequestContext.RouteData.Values["language"] 为空
-
@jbl:- 我试过
Page.RouteData.Values["language"].ToString();也没有用.. -
@SatPal:- 你说得对,我现在正在使用
if (string.IsNullOrEmpty(Request["language"])),因为所有页面中都存在语言。我错过了基本的东西。谢谢
标签: c# asp.net url-routing webforms