Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当部分视图中的ajax调用完成时,如何在主机MVC页面上调用javascript?_Javascript_Ajax_Model View Controller_Partial Views - Fatal编程技术网

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

当部分视图中的ajax调用完成时,如何在主机MVC页面上调用javascript?,javascript,ajax,model-view-controller,partial-views,Javascript,Ajax,Model View Controller,Partial Views,我有一个用于搜索的Asp.net MVC局部视图。它执行Ajax调用来检索结果。检索结果并在结果窗格中显示后,用户可以单击任何结果行中的链接以选择其中一个搜索结果。当用户点击一个链接来选择一个搜索结果时,它会发出一个Ajax post请求来更新某些状态。一旦这个Ajax调用完成,我需要重定向到另一个页面,但是目标页面取决于用户所在的页面。此搜索部分视图将托管在多个页面中,并且每个主机页面的重定向位置将不同。我想不出一种方法来做到这一点,这是有意义的,而且不会将部分视图与宿主页面过度耦合(反之亦然

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

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


或者有没有办法在每一行上都有一个按钮或链接,从而导致post请求发生,该请求可能返回重定向结果,目标基于调用页面?

我最终使用了一种TemplateMethod模式来实现这一点。在我的部分中,我添加了JavaScript函数:

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

这将检查函数是否存在,是否是函数,如果是,则调用函数。为了实现这一点,宿主页面可以选择实现doSomethingParentPage方法,以便在部分页面中完成某个操作时完成该操作。我不知道如何检查参数匹配,但至少在分部完成其工作后,我会收到一个调用。

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

function onActionCompleted() {
    DoSomethingLocal();
    if (typeof DoSomethingInParentPage == 'function') {
        DoSomethingInParentPage();
    }
} 
这将检查函数是否存在,是否是函数,如果是,则调用函数。为了实现这一点,宿主页面可以选择实现doSomethingParentPage方法,以便在部分页面中完成某个操作时完成该操作。我不知道如何检查参数匹配,但至少在分部完成工作后,我会接到一个电话