AJAX请求完成后,如何调用PartialView中定义的JavaScript函数?
以下是我的部分观点:AJAX请求完成后,如何调用PartialView中定义的JavaScript函数?,javascript,asp.net-mvc,asp.net-ajax,Javascript,Asp.net Mvc,Asp.net Ajax,以下是我的部分观点: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <script type="text/javascript"> function myFunction() { .... } </script> ....other html content ... <%= Ajax.ActionLink(..., new AjaxOptions {
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script type="text/javascript">
function myFunction() { .... }
</script>
....other html content ...
<%= Ajax.ActionLink(..., new AjaxOptions { ..., OnSuccess = "myFunction" }) %>
函数myFunction(){….}
…其他html内容。。。
在我的页面上,我有一个链接,该链接调用控制器操作以呈现局部视图:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script type="text/javascript">
function myFunction() { .... }
</script>
....other html content ...
<%= Ajax.ActionLink(..., new AjaxOptions { ..., OnSuccess = "myFunction" }) %>
这是我的控制器操作:
...
返回部分视图(“测试控制”);
我觉得这很直截了当。不幸的是,我遇到了JavaScript错误:
Microsoft JScript运行时错误:“myFunction”未定义
当我在AJAX调用后检查生成的页面源代码时,我可以在源代码中看到myFunction
。然而,在AJAX的OnSuccess中,不知何故它并不知道这个函数。有什么我错过的吗?是否有任何方法可以调用作为通过AJAX加载的部分视图一部分的脚本?(我试图使用eval()
,但不知何故,我也无法解析该函数。)
提前感谢。成功可能发生在将部分视图注入DOM之前;您最好在定义
myFunction
后立即调用它:
function myFunction(){
//code here
}
myFunction();
这样,myFunction
在其定义之后立即被调用(因为脚本引用是由部分视图逻辑注入DOM的,所以在部分视图的实际更新之后尽快调用)
如果
myFunction
对部分视图的内容进行操作,您可能必须将脚本引用移动到部分视图的末尾,以便在执行JS之前呈现它所操作的DOM。我实际上不知道如何直接调用它:我需要等待ajax请求完成,然后才能这样做。你能告诉我怎么做吗?谢谢