Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Page.RouteData是否返回WebResource.axd?_Asp.net_Vb.net_Session_Variables_Webresource.axd - Fatal编程技术网

Asp.net Page.RouteData是否返回WebResource.axd?

Asp.net Page.RouteData是否返回WebResource.axd?,asp.net,vb.net,session,variables,webresource.axd,Asp.net,Vb.net,Session,Variables,Webresource.axd,我的Global.asax中有一条规则,如下所示: RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}", "~/default.aspx") 实际上,任何物理上不存在的页面都会重定向到default.aspx。当该页面加载时,我在页面加载子模块中使用以下命令,如下所示: Dim prospect_url As String = Page.RouteData.Values("value") 然后我将其转换为会话变量,如下所示: S

我的Global.asax中有一条规则,如下所示:

RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}", "~/default.aspx")
实际上,任何物理上不存在的页面都会重定向到default.aspx。当该页面加载时,我在页面加载子模块中使用以下命令,如下所示:

Dim prospect_url As String = Page.RouteData.Values("value")
然后我将其转换为会话变量,如下所示:

Session("prospect_url") = prospect_url
最终,该个人被重定向到另一个页面…在该页面中,我需要再次访问该值,但当我执行以下操作时:

Dim prospect_url As String = CStr(Session("prospect_url"))

我得到WebResource.axd作为prospect\u url的值。什么这是从哪里来的?

该全局规则适用于被请求的任何资源,包括图像文件、脚本文件和任何其他资源(例如您看到的WebResource.axd)。
因此,这里发生的情况是,路由表规则导致它将每个请求保存到会话变量中,每次都覆盖最后一个值,当您自己查看会话变量时,它被保留在WebResource.axd(可能是另一个实例上的其他内容)

在我的博客上,我有一个解决方法:

但是它是用C#编写的,并且应该很容易翻译成VB.NET


但本质上,您应该在同一个请求中处理prospect url值,而不依赖会话变量,因为其他同时请求可能会在到达该值之前覆盖该值。

该全局规则适用于被请求的任何资源,包括图像文件、脚本文件和任何其他资源(例如您看到的WebResource.axd
因此,这里发生的情况是,路由表规则导致它将每个请求保存到会话变量中,每次都覆盖最后一个值,当您自己查看会话变量时,它被保留在WebResource.axd(可能是另一个实例上的其他内容)

在我的博客上,我有一个解决方法:

但是它是用C#编写的,并且应该很容易翻译成VB.NET

但本质上,您应该在同一个请求中处理prospect url值,而不依赖会话变量,因为其他同时请求可能会在到达该值之前覆盖该值。

请尝试下面的代码:

 protected void Application_Start(object sender, EventArgs e)
 {
     RegisterRoutes(RouteTable.Routes);

     ...
 }

 private static void RegisterRoutes(RouteCollection routes)
 {
    routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));

    ...
 }
请尝试以下代码:

 protected void Application_Start(object sender, EventArgs e)
 {
     RegisterRoutes(RouteTable.Routes);

     ...
 }

 private static void RegisterRoutes(RouteCollection routes)
 {
    routes.Add(new Route("{resource}.axd/{*pathInfo}", new StopRoutingHandler()));

    ...
 }