是否有一种方法可以将由AJAX请求启动的MVC Action直接重定向到另一个页面/ View,而无需先向客户端发送JavaScript“ window.location = ...” ?换句话说,直接在服务器端传输响应并避免往返于客户端。
这是关于直接传输AJAX调用的可能性的一般性问题,但这是一个更具体的场景:
答案 0 :(得分:0)
这不可能,不。
浏览器有两个选项可供选择:
它无法进行AJAX调用并根据服务器决定的内容自动重定向,因为客户端(浏览器)在浏览器甚至收到响应之前都不知道服务器已经决定了什么。
传统的方法(你要避免的)是:
window.location
但是你想跳过这一步:
window.location
但是客户端不知道它需要重定向和/或它不知道如何。
想到伪实现你想要的一个想法是让MVC呈现所需的视图并通过JSON而不是重定向方法将整个事物发送回客户端。让我解释一下。
您还可以更改浏览器的网址和历史记录,使其“感觉”像是manipulating the browser history的重定向。
但是我想指出,这种“解决方案”更多是一种有趣/有趣的方法。这不是解决问题的好方法。