我希望将用户重定向到特定的网址。就我而言,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
?
答案 0 :(得分:2)
任何没有协议(http://
)或正斜杠(/
)的URL都被视为相对URL。如果它以www
开头并不重要,那只是一个任意子域。
由于它被认为是相对的,因此它会附加到现有URL结尾的开头。因此,为了重定向网站,您需要一个完全限定的绝对URL。