我正在对一些用户数据进行简单的检查,这些用户数据会在登录时进入会话状态。如果发生这种情况,我点击几个按钮即可进入此页面。此页面的下拉列表设置为autopostback=true
。
当我在drop中更改我的选择时,我的请求被重定向到不存在的页面。 signin.aspx
存在于网站的根文件夹中。尝试重定向在此特定页面所在的文件夹中查找登录(example.com/folder1/signin.aspx),而不是example.com/signin.aspx。
我应该使用Response.Redirect
之外的其他内容来完成此操作吗?
关于申请的附注:
这是使用jquery 1.6.4和jquerymobile 1.0的.net 4。我认为jquery mobile是问题所在,因为我在其他应用程序上使用相同的模式/练习而没有问题。
发生这种情况的页面位置。 example.com/folder1/page2.aspx
登录页面的位置:example.com/signin.aspx
错误中显示的网址。 example.com/folder1/signin.aspx
protected override void OnInit(EventArgs e)
{
if (Session["UserData"] == null)
{
Response.Redirect("../SignIn.aspx");
}
}
答案 0 :(得分:3)
您应该始终使用asp.net样式的根相对路径:
Response.Redirect("~/SignIn.aspx");
这使得URL相对于您网站的根目录(除非您的网站是网络根目录,而不是网络根目录),但仍允许网站移动。
答案 1 :(得分:1)
jquery不会影响服务器端的response.redirect。您确定该页面存在,因为它在您的代码中设置了吗?如果signin.aspx位于网站的根目录中,您能不能简单地执行此操作吗?
Response.Redirect("/SignIn.aspx");
答案 2 :(得分:1)
试试这个
protected override void OnInit(EventArgs e)
{
if (Session["UserData"] == null)
{
Response.Redirect("~/SignIn.aspx");
}
}