如何将用户重定向到MVC中的新网站?重定向将返回URL附加到控制器方法

时间:2016-10-20 17:19:47

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

我希望将用户重定向到特定的网址。就我而言,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会将我的外部网址附加到基本网址?

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

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

为什么会出现这种差异?我应该始终使用http://为网址添加前缀以重定向到新网页吗?如果没有,它将重定向到控制器内的action method

明显感到困惑。任何见解?

1 个答案:

答案 0 :(得分:2)

任何没有协议(http://)或正斜杠(/)的URL都被视为相对URL。如果它以www开头并不重要,那只是一个任意子域。

由于它被认为是相对的,因此它会附加到现有URL结尾的开头。因此,为了重定向网站,您需要一个完全限定的绝对URL。