2012-02-14 85 views
-1

我正在做一些简单的检查,一些用户数据在登录时被放入会话中。发生什么事情,我点击几个按钮来获得这个页。此页面a的下拉列表设置为autopostback=trueResponse.Redirect重定向到一个不存在的页面

当我在drop中更改我的选择时,我的请求被重定向到一个不存在的页面。该网站的根文件夹中存在signin.aspx。尝试重定向时会查找此特定页面所在的文件夹中的登录信息(example.com/folder1/signin.aspx),而不是example.com/signin.aspx。

我是否应该使用Response.Redirect以外的东西来完成此操作?

边注关于应用程序:

这是达网络4使用jquery 1.6.4和jquerymobile 1.0。我认为jquery mobile是问题所在,因为我在其他应用程序中使用相同的模式/实践而没有问题。

发生这种情况的页面位置。 example.com/folder1/page2.aspx标志

位置页:example.com/signin.aspx

URL显示在错误。 example.com/folder1/signin.aspx

protected override void OnInit(EventArgs e) 
{ 

    if (Session["UserData"] == null) 
    { 
     Response.Redirect("../SignIn.aspx"); 
    } 

} 
+0

可以还张贴您的标记/ ASPX代码 – Devjosh 2012-02-14 18:27:21

+0

更多信息需要:至极网址你打电话时thsi方法?你想要去什么网址? – coppettim 2012-02-14 18:28:12

+0

我更新了我的问题。重定向应该转到网站根目录下的signin.aspx。重定向实际上是试图带我到文件夹中不存在的登录页面1 – Michael 2012-02-14 21:38:50

回答

3

你应该总是使用asp.net风格根目录相对路径:

Response.Redirect("~/SignIn.aspx"); 

这使得相对于网站根目录的URL(而不是web根目录,除非你的网站是web根目录),但仍然允许网站移动。

+0

显然它们被称为“根相对”。 http://msdn.microsoft.com/en-us/library/ms178116.aspx – BNL 2012-02-14 18:33:04

+1

我猜他们想要根路径,因为404可能是因为他们在子目录中的父文件夹没有SignIn.aspx – 2012-02-14 18:33:29

+0

@BNL啊!所以我们都是对的! (和...都错了......嘿嘿)好,赶快编辑! – 2012-02-14 18:35:18

1

jquery不会影响服务器端response.redirect。你确定该页面是否存在,因为它正在你的代码中设置?如果signin.aspx位于网站的根目录下,您是否可以不简单地执行此操作?

Response.Redirect("/SignIn.aspx"); 
+0

我试过这个,并得到了相同的结果 – Michael 2012-02-14 21:39:59

+0

我删除了我所有的jquery引用和一切工作。我很确定,jquery mobile是问题所在。 – Michael 2012-02-15 18:34:03

1

尝试这个

protected override void OnInit(EventArgs e) 
{ 


    if (Session["UserData"] == null) 
    { 
     Response.Redirect("~/SignIn.aspx"); 
    } 

} 
相关问题