【问题标题】:How to redirect a user to a new website in MVC ? Redirect appends return url to a controller method如何将用户重定向到 MVC 中的新网站?重定向将返回 url 附加到控制器方法
【发布时间】:2016-10-20 17:19:46
【问题描述】:

我希望将用户重定向到特定的 URL。就我而言,www.madhu.co.in

我的控制器动作如下所示:

[HttpPost]
public ActionResult Redirec()
{
   return Redirect("www.madhu.co.in");
}

我通过httpPost 呼叫此电话。

来电者网站是http://localhost/home

调用此方法后,MVC 尝试重定向到http://localhost/home/www.madhu.co.in

这很奇怪。

为什么 MVC 将我的外部 URL 附加到基本 url?

但是,当我重新定义方法以包含 http:// 时,MVC 重定向到 http://www.madhu.co.in

[HttpPost]
    public ActionResult Redirec()
    {
       return Redirect("http://www.madhu.co.in");
    }

为什么会出现这种差异?我是否应该始终在 URL 前加上 http:// 以重定向到新页面?如果没有,它会重定向到控制器内的action method

显然很困惑。有什么见解吗?

【问题讨论】:

  • 是的。你应该有http://https://
  • 如果没有,应该会报错吧?为什么它将external url 附加到我的基本网址?
  • 因为它不是绝对网址。
  • @DanielA.White:好的,现在我明白了.. 相对 url 将始终与任何控制器操作匹配...谢谢

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api .net-4.5


【解决方案1】:

任何没有协议 (http://) 或正斜杠 (/) 的 URL 都被视为相对 URL。以www开头没关系,只是认为是任意子域。

因为它被认为是相对的,所以它被附加到现有 URL 末尾的开头。因此,为了重定向到站点外,您需要一个完全限定的绝对 URL。

【讨论】:

  • 谢谢。现在,这是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2015-08-29
  • 2021-12-27
  • 2021-11-21
  • 1970-01-01
  • 2017-11-19
  • 2015-04-24
相关资源
最近更新 更多