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
这很奇怪,因为这是正确的方式......
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)