C# 如何在MVC中将用户重定向到新网站?重定向将返回url附加到控制器方法
我希望用户被重定向到一个特定的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"); } 我是通过
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将始终与任何控制器操作匹配。。。谢谢,谢谢。现在,这是有道理的。