当部分视图中的ajax调用完成时,如何在主机MVC页面上调用javascript?
我有一个用于搜索的Asp.net MVC局部视图。它执行Ajax调用来检索结果。检索结果并在结果窗格中显示后,用户可以单击任何结果行中的链接以选择其中一个搜索结果。当用户点击一个链接来选择一个搜索结果时,它会发出一个Ajax post请求来更新某些状态。一旦这个Ajax调用完成,我需要重定向到另一个页面,但是目标页面取决于用户所在的页面。此搜索部分视图将托管在多个页面中,并且每个主机页面的重定向位置将不同。我想不出一种方法来做到这一点,这是有意义的,而且不会将部分视图与宿主页面过度耦合(反之亦然) 我猜另一个选择可能是在选择Ajax调用完成后重定向到另一个页面(这是最终的目标),但是Ajax调用中的重定向结果不会被吞没吗当部分视图中的ajax调用完成时,如何在主机MVC页面上调用javascript?,javascript,ajax,model-view-controller,partial-views,Javascript,Ajax,Model View Controller,Partial Views,我有一个用于搜索的Asp.net MVC局部视图。它执行Ajax调用来检索结果。检索结果并在结果窗格中显示后,用户可以单击任何结果行中的链接以选择其中一个搜索结果。当用户点击一个链接来选择一个搜索结果时,它会发出一个Ajax post请求来更新某些状态。一旦这个Ajax调用完成,我需要重定向到另一个页面,但是目标页面取决于用户所在的页面。此搜索部分视图将托管在多个页面中,并且每个主机页面的重定向位置将不同。我想不出一种方法来做到这一点,这是有意义的,而且不会将部分视图与宿主页面过度耦合(反之亦然
或者有没有办法在每一行上都有一个按钮或链接,从而导致post请求发生,该请求可能返回重定向结果,目标基于调用页面?我最终使用了一种TemplateMethod模式来实现这一点。在我的部分中,我添加了JavaScript函数:
function onActionCompleted() {
DoSomethingLocal();
if (typeof DoSomethingInParentPage == 'function') {
DoSomethingInParentPage();
}
}
这将检查函数是否存在,是否是函数,如果是,则调用函数。为了实现这一点,宿主页面可以选择实现doSomethingParentPage方法,以便在部分页面中完成某个操作时完成该操作。我不知道如何检查参数匹配,但至少在分部完成其工作后,我会收到一个调用。我最终使用了一种TemplateMethod模式来完成这项工作。在我的部分中,我添加了JavaScript函数:
function onActionCompleted() {
DoSomethingLocal();
if (typeof DoSomethingInParentPage == 'function') {
DoSomethingInParentPage();
}
}
这将检查函数是否存在,是否是函数,如果是,则调用函数。为了实现这一点,宿主页面可以选择实现doSomethingParentPage方法,以便在部分页面中完成某个操作时完成该操作。我不知道如何检查参数匹配,但至少在分部完成工作后,我会接到一个电话