【发布时间】:2015-07-09 01:54:18
【问题描述】:
我的多语言网站上有以下代码:(MasterPage.master.vb)
Dim pageUrl As String = HttpContext.Current.Request.Url.AbsolutePath
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim strLanguage As String = Session("Language")
If Not IsPostBack Then
Response.Redirect(String.Format("{0}?Language={1}", pageUrl, strLanguage))
End If
Response.Write(String.Format("{0}?Idioma={1}", pageUrl, strLanguage))
End Sub
它会在当前 URL 的末尾显示查询字符串:'?Language=es' 或 '?Language=en',但是当我运行网络时,浏览器会显示消息:此页面有重定向循环( ERR_TOO_MANY_REDIRECTS)。
为什么会这样?我该如何解决这个问题?
提前致谢
编辑:我也试过:
If IsPostBack Then
但是当我这样做时,查询字符串不会出现在 URL 的末尾。
编辑 2(已解决):终于可以使用了!非常感谢zed,最终代码如下:
Dim pageUrl As String = HttpContext.Current.Request.Url.AbsolutePath
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim strLanguage As String = Session("Language")
If Not IsPostBack Then
If Request.QueryString("Language") Is Nothing Then
Response.Redirect(String.Format("{0}?Language={1}", pageUrl, strLanguage))
End If
Else
If Not Request.QueryString("Language") Is Nothing Then
Response.Redirect(String.Format("{0}?Language={1}", pageUrl, strLanguage))
End If
End If
Response.Write(String.Format("{0}?Language={1}", pageUrl, strLanguage))
End Sub
【问题讨论】:
标签: asp.net redirect webforms infinite-loop response.redirect