我正在尝试使用以下代码捕获引用URL。重定向到页面不起作用。请帮我解决问题。
if (!Page.IsPostBack)
{
ViewState["PreviousPage"] = Request.ServerVariables["HTTP_REFERER"];
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (ViewState["PreviousPage"] != null)
{
Response.Redirect(ViewState["PreviousPage"].ToString());
}
}
答案 0 :(得分:1)
我不确定它会有所帮助,但您也可以尝试使用请求对象的url referrer属性来访问它。
Request.UrlReferrer
答案 1 :(得分:1)
在我看来,你可能正在重建轮子。
默认情况下,有一种内置的.NET方法可以使用表单身份验证。您将获得一个查询字符串,以自动将您重定向到应用程序中的页面。您在未登录时点击了某个页面,该应用会在您登录前记住您想去的地方,并在您进行身份验证时将其发送给您。
这是你想要做的吗?
答案 2 :(得分:0)
这可能有效
的Response.Redirect((的ViewState [ “|上一页”] +) “的aspx。”);
答案 3 :(得分:0)
这里可能会发生一些事情。
如果您直接访问登录页面,则引用程序始终为null。因此,请确保您的代码可以处理它。
您尚未说明if (!Page.IsPostBack)
的位置,如果它位于Page_Init,您的问题很可能是ViewState["PreviousPage"] = Request.ServerVariables["HTTP_REFERER"];
在回发期间不会保留ViewState
。
您可以通过将支票移至Page_Load
或将ViewState.SetDirty(true);
添加到Page_InitComplete
来解决此问题。
另一个可能的问题是,出于隐私原因,某些浏览器会删除HTTP_REFERER
标头。再次,确保您的代码处理值为null。