我有一个用于搜索的Asp.net MVC局部视图。它执行一个Ajax调用来检索结果。一旦检索到结果并将其显示在结果窗格中,用户就可以单击任何结果行中的链接来选择其中一个搜索结果。当用户单击一个链接以选择其中一个搜索结果时,它将发出一个Ajax post请求以更新某些状态。完成此Ajax调用后,我需要重定向到另一个页面,但目标页面取决于用户所在的页面。此搜索部分视图将驻留在多个页面中,并且每个主页的重定向位置将不同。我想不出有什么方法可以做到这一点,而且不会过度地将局部视图耦合到宿主页面(反之亦然)。
我猜另一种选择可能是在选择Ajax调用完成后重定向到另一个页面(这是最终目标),但是Ajax调用中的重定向结果不会被接受吗?
或者,有没有一种方法可以在每一行上都有一个按钮或链接,从而导致post请求发生,该请求可能会返回重定向结果,并且目的地基于调用页面?
发布于 2009-07-22 19:31:07
我最终使用了一种TemplateMethod模式来实现这一点。在我的partial中,我添加了JavaScript函数:
function onActionCompleted() {
DoSomethingLocal();
if (typeof DoSomethingInParentPage == 'function') {
DoSomethingInParentPage();
}
}
这将检查函数是否存在以及是否为函数,如果存在,则调用该函数。为了使其正常工作,宿主页面可以选择实现方法DoSomethingInParentPage,以便在部分操作完成时完成某些操作。我不确定如何检查参数匹配,但至少在partial完成其工作时我会收到一个调用。
https://stackoverflow.com/questions/1135328
复制相似问题