javascript - 当部分 View 中的ajax调用完成时,如何在主机MVC页面上调用javascript?

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

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

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

或者是否有一种方法可以在每行上放置一个按钮或链接,从而导致发生可能返回重定向结果的发布请求,并且目标基于调用页面?

最佳答案

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

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

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

关于javascript - 当部分 View 中的ajax调用完成时,如何在主机MVC页面上调用javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1135328/

相关文章:

javascript - 我可以使用scroll()方法触发Load()函数吗?

java - Java中监听器的内部类,这是不好的做法吗?

c# - 在 1 个 View 中添加 2 个 IEnumerable 模型

javascript - Mixitup jQuery 插件在选择过滤器后重置

javascript - 它给出 NaN 而不是数组的内容

javascript - XMLHttpRequest POST参数编码

java - 标签或页面片段中使用的 Spring-MVC 通用模型属性

javascript - django中破管错误的可疑解决方案

javascript - 如何使用 Chartjs 匹配左右刻度间隔

PHP如何将HTML页面中的多个表单发布到另一个PHP页面