Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC中将用户重定向到新网站?重定向将返回url附加到控制器方法_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Web Api_.net 4.5 - Fatal编程技术网

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

C# 如何在MVC中将用户重定向到新网站?重定向将返回url附加到控制器方法,c#,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,.net-4.5,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,.net 4.5,我希望用户被重定向到一个特定的URL。就我而言,www.madhu.co.In [HttpPost] public ActionResult Redirec() { return Redirect("http://www.madhu.co.in"); } 我的控制器操作如下所示: [HttpPost] public ActionResult Redirec() { return Redirect("www.madhu.co.in"); } 我是通过

我希望用户被重定向到一个特定的URL。就我而言,
www.madhu.co.In

[HttpPost]
    public ActionResult Redirec()
    {
       return Redirect("http://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

[HttpPost]
    public ActionResult Redirec()
    {
       return Redirect("http://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://
以重定向到新页面?如果没有,它将重定向到控制器内的
操作方法


显然很困惑。任何细节?

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


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

是。您应该有
http://
https://
如果没有,它应该抛出一个错误,对吗?为什么它会将
外部url
附加到我的基本url?因为它不是一个绝对url。@DanielA.White:好的,现在我明白了。。相对url将始终与任何控制器操作匹配。。。谢谢,谢谢。现在,这是有道理的。