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

Posted

技术标签:

【中文标题】MVC 中的重定向无法按预期工作【英文标题】:Redirect in MVC does not work as expected 【发布时间】:2012-01-16 13:14:08 【问题描述】:

我有以下代码:

var redirectIp = string.Format("01", 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】:

这就是 url、http 和浏览器的工作方式。您忘记了协议部分,因此重定向实际上确实按预期工作,给定您要重定向到的 url。

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

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

【讨论】:

以上是关于MVC 中的重定向无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

Litespeed 服务器上的重定向未按预期工作

mod_rewrite重定向无法按预期工作

无法重定向到 MVC 控制器中的外部 URL

微软身份提供者和 .net 核心的注销重定向 url (5) MVC

apache中的重定向

将 [Authorize] 添加到控制器无法重定向到身份登录路由。 ASP.NET 核心 3.1 MVC