【问题标题】:How do I call javascript on host MVC page when ajax call in partial view is complete?局部视图中的 ajax 调用完成后,如何在主机 MVC 页面上调用 javascript?
【发布时间】:2009-07-16 04:03:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript ajax model-view-controller partial-views


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-09
      • 2014-03-11
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多