重定向绝对URL在MVC 4中不起作用

Mr.*_*kin 3 asp.net-mvc redirect arr

出于某些原因,我必须将来自我的MVC 4应用程序的请求重定向到具有位于其他域中的绝对URL的页面.这是我使用的代码:

public ActionResult Test(string url)
{
    return Redirect(url);
}
Run Code Online (Sandbox Code Playgroud)

当我在本地机器上尝试它时,一切正常,但是当我将代码发布到生产并试图让它在那里工作时,我遇到了一些问题...例如,将请求重定向到' https:// stackoverflow .com/questions/ask '它会被重定向到'http:// {{myserverdomain.com}}/questions/ask'.因此请求将被重定向到本地路径'questions/ask'而不是绝对URL.

不知道我应该检查什么和哪里.我很感激任何提示可能是什么问题以及在哪里检查它...

以防万一:服务器是Windows Server 2008 R2 Enterprise

UPDATE

URL/HTML编码不是问题的原因.改变方法

public ActionResult Test()
{
    return Redirect("https://stackoverflow.com/questions/ask");
}
Run Code Online (Sandbox Code Playgroud)

将给出相同的结果...它将被重定向到'问题/问'/怀疑URL重写模块的原因,但不知道如何检查它...

这是帮助解决问题的链接:http://forums.iis.net/t/1171047.aspx

Joa*_*ron 6

这很奇怪,因为这是正确的方式......

public ActionResult YourAction()
{
    // ...
    return Redirect("http://www.example.com");
}
Run Code Online (Sandbox Code Playgroud)

您无法直接从ajax响应执行服务器端重定向.但是,您可以使用新URL返回JsonResult并使用javascript执行重定向.

服务器端 :

public ActionResult YourAction()
{
    // ...
    return Json(new {url = "http://www.example.com"});
}
Run Code Online (Sandbox Code Playgroud)

客户端:

$.post("@Url.Action("YourAction")", function(data) {
    window.location = data.url;
});
Run Code Online (Sandbox Code Playgroud)