[英]How do I call javascript on host MVC page when ajax call in partial view is complete?
我有一个用于搜索的Asp.net MVC局部视图。 它执行Ajax调用以检索结果。 一旦检索到结果并将其显示在结果窗格中,用户就可以单击任何结果行中的链接以选择一个搜索结果。 当用户单击链接以选择搜索结果之一时,它将发出Ajax发布请求以更新某些状态。 完成此Ajax调用后,我需要重定向到另一个页面,但是目标页面取决于用户所在的页面。 此搜索局部视图将托管在多个页面中,并且每个主机页面的重定向位置都将不同。 我想不出一种可行的方法,并且不会将部分视图过多地耦合到托管页面(反之亦然)。
我猜另一个选择可能是选择Ajax调用完成后重定向到另一个页面(这最终是目标),但是Ajax调用中的重定向结果不会被吞下吗?
还是有一种方法在每行上都有一个按钮或链接,而不是导致发布请求的出现,该请求可能返回重定向结果,而目标基于调用页面?
我最终使用了一种TemplateMethod模式来完成这项工作。 在我的部分文章中,我添加了JavaScript函数:
function onActionCompleted() {
DoSomethingLocal();
if (typeof DoSomethingInParentPage == 'function') {
DoSomethingInParentPage();
}
}
这将检查该函数是否存在并且是一个函数,如果存在则调用该函数。 为了使此工作有效,托管页面可以选择实现DoSomethingInParentPage方法,以在部分完成操作时完成某些操作。 我不确定如何检查参数是否匹配,但是至少我在部分完成工作后接到了电话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.