Jat*_*tin 9 asp.net-mvc asp.net-mvc-3
在ASP.net MVC3的上下文中,我在控制器动作中有这行代码,它试图重定向到特定的URL.
return Redirect(returnUrl);
Run Code Online (Sandbox Code Playgroud)
returnUrl是一个包含"/ Home/Index /"的字符串.由于某种原因,重定向没有发生,我仍然在同一个屏幕上.我尝试删除尾部斜杠但没有成功.任何想法为什么没有重定向?
Dar*_*rov 19
该Redirect方法旨在用于重定向到您网站的外部网址,并通过传递绝对网址.如果您需要重定向到属于您网站的另一个控制器操作,最好使用它:
return RedirectToAction("Index", "Home");
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您不再需要硬编码网址,并且您的代码不太容易路由更改.
话虽如此,如果你正在调用使用AJAX执行此重定向的控制器操作,你不能指望它将浏览器重定向到任何地方=>它显然会保持在同一页面上.AJAX请求将在所有重定向后成功,并且在成功回调中,您将获得/Home/IndexURL 的最终HTML,就好像它是在没有AJAX的情况下请求的那样.
如果要重定向AJAX调用的成功回调,可以让控制器操作返回,例如,一个JSON对象,指示要重定向到的目标URL:
return Json(new { redirectToUrl = Url.Action("Index", "Home") });
Run Code Online (Sandbox Code Playgroud)
在你的回调中使用window.location.href函数:
success: function(result) {
window.location.href = result.redirectToUrl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10819 次 |
| 最近记录: |