1

我有一个用于搜索的 Asp.net MVC 部分视图。它执行 Ajax 调用来检索结果。一旦检索到结果并将其显示在结果窗格中,用户可以单击任何结果行中的链接以选择其中一个搜索结果。当用户单击链接以选择其中一个搜索结果时,它将发出 Ajax 发布请求以更新某些状态。一旦这个 Ajax 调用完成,我需要重定向到另一个页面,但目标页面取决于用户所在的页面。此搜索部分视图将托管在多个页面中,并且每个托管页面的重定向位置都不同。我想不出一种有意义的方法来做到这一点,并且不会将部分视图过度耦合到托管页面(反之亦然)。

我猜另一个选项可能是在选择 Ajax 调用完成后重定向到另一个页面(这最终是目标),但是 Ajax 调用中的重定向结果不会被吞没吗?

或者有没有办法在每一行上都有一个按钮或链接,而不是导致发生一个可以返回重定向结果的发布请求,目的地基于调用页面?

4

1 回答 1

1

我最终使用了一种 TemplateMethod 模式来完成这项工作。在我的部分中,我添加了 JavaScript 函数:

function onActionCompleted() {
    DoSomethingLocal();
    if (typeof DoSomethingInParentPage == 'function') {
        DoSomethingInParentPage();
    }
} 

这将检查该函数是否存在并且是一个函数,如果是则调用该函数。为了使其工作,托管页面可以选择实现方法 DoSomethingInParentPage 以在部分操作完成时完成某些操作。我不确定如何检查参数是否匹配,但至少当部分完成工作时我会接到一个电话。

于 2009-07-22T19:31:06.523 回答