Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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请求完成后,如何调用PartialView中定义的JavaScript函数?_Javascript_Asp.net Mvc_Asp.net Ajax - Fatal编程技术网

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请求完成,然后才能这样做。你能告诉我怎么做吗?谢谢