Response.Redirect的Request.UrlReferrer在主页上崩溃

时间:2014-05-22 06:22:34

标签: asp.net asp.net-mvc uri

我在网站上有土耳其语和英语之间的语言切换。问题是,假设用户在http://en.fastercv.com/is-ilanlari这样的页面上。如果他点击土耳其国旗,他曾经被重定向到主页:http://www.fastercv.com而不是http://www.fastercv.com/is-ilanlari。我使用下面的代码对其进行了整理:

if (Request.UrlReferrer!=null)
{
     string prevPage = Request.UrlReferrer.ToString();
     string prevUrl = Request.UrlReferrer.ToString();
     Uri uri = new Uri(prevUrl);
     string prevPath = uri.PathAndQuery;
     if (uri.Host == "en.fastercv.com")
     {
          Response.Redirect("http://www.fastercv.com" + prevPath);
     }
}

现在问题是,当他在主页上时,如果他点击语言标志,它似乎进入无限循环。页面永远不会加载。在Firefox上它说:Firefox has detected that the server is redirecting the request for this address in a way that will never complete. This problem can sometimes be caused by disabling or refusing to accept cookies.它只发生在主页上。我怀疑if检查上的uri.Host位。它是ASP.NET-MVC。

1 个答案:

答案 0 :(得分:0)

找出原因。如果网址没有"路径和查询",则Index()方法始终重新开始。重写了if条件:

if (uri.Host == "en.fastercv.com" && uri.PathAndQuery!="/")
 {
      Response.Redirect("http://www.fastercv.com" + prevPath);
 }