MVC中的重定向无法按预期工作

时间:2011-12-09 07:10:39

标签: c# asp.net-mvc asp.net-mvc-3 http-redirect

我有以下代码:

var redirectIp = string.Format("{0}{1}", Session["CurrentHost"], ip.PathAndQuery);
return new RedirectResult(redirectIp);

当我检查redirectIP的值时,它给了我:

redirectIp  "127.0.0.1:84/Administration/Accounts/ShowSummary?ds=0001"  string

然而,当我单步浏览代码时,浏览器会打开并给我以下内容:

http://127.0.0.1:84/Administration/Accounts/127.0.0.1:84/Administration/Accounts/ShowSummary?ds=0001

我完全糊涂了。任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:4)

这就是网址,http和浏览器的工作原理。您忘记了协议部分,因此重定向实际确实按预期工作,给定您要重定向到的网址。

var redirectIp = string.Format("http://{0}{1}", Session["CurrentHost"], ip.PathAndQuery);
return new RedirectResult(redirectIp);

现在这样做会更好,但是为了能够覆盖https,最好将协议部分与主机名一起存储在会话变量中。