【问题标题】:Why isn't my JavaScript function being called?为什么我的 JavaScript 函数没有被调用?
【发布时间】:2025-12-18 09:55:02
【问题描述】:

这是迄今为止我的索引网站的内容:

<%  if (Model.Data != null)
    {
       if (Model.Data.Rows.Count > 0)
       {
       var divLoadGif = string.Empty;
           var divRealData = string.Empty;
           for(int n = 0; n < Model.Data.Rows; n++)
           {
               divLoadGif  = "divLoadGif_"  + n.ToString("0000");
               divRealData = "divRealData_" + n.ToString("0000");    
%>
               <div id="<%:divLoadGif%>" style="width: 100%;">
                  Please wait ... 
                  <img src="/loading.gif" alt="loading ..." />
               </div> 

               <div id="<%:divRealData%>" style="visibility: hidden;">
                  <div id="column_1" style="width: 25%; float:left;">
                     This
                  </div>
                  <div id="column_2" style="width: 25%; float:left;">
                     is
                  </div>
                  <div id="column_3" style="width: 25%; float:left;">
                     a test
                  </div>
                  <div id="column_4" style="width: 25%; float:left;">
                    row.
                  </div>
               </div>

               <script type="text/javascript">
                  AsyncFunction(<%: divLoadGif %>, <%: divRealData %>, n);
               </script>
<%        }
       }
    }
%>

控制器填写我的Model.Data。例如:

  • Model.Data.Row 应该等于 3。这意味着循环将进行 3 个“循环”。这个想法是在每个“回合”中都应该显示一个加载 gif,而 div 部分(有 4 列)是不可见的。

  • 然后应该调用 JavaScript 函数 AsyncFuntionCall。 (这失败了。)

  • 这个 JavaScript 函数变成了两个“div 标签 id”和n(for 循环的变量)。然后它将使用 AJAX 调用控制器方法。

  • 控制器方法还获取 div 标签和n

  • 最后,控制器方法将被调用 3 次。控制器方法将为每次调用返回一个“结果”。每次调用都需要几秒钟才能将结果返回给 AJAX 功能。

我的 AJAX 调用中的 success: function (result) { result = $.parseJSON(result); ...} 部分 然后将执行以下操作:

  • 解析result

  • divid="&lt;%:divLoadGif%&gt;" 切换为隐藏。

  • divid="&lt;%:divRealData%&gt;" 切换为可见。

  • 将 4 个“值”替换为来自 result 的解析值。

容易吗?不适合我:-(因为我有一些问题:

  1. 循环工作正常。但是 JavaScript 函数 AsyncFunction 根本没有被调用!怎么了?

  2. 我完全不知道如何更改 "This" "is" "a test" "row" 中的值 我的 AJAX 调用中的 success: function (result) { result = $.parseJSON(result); ...} 部分。

【问题讨论】:

    标签: javascript ajax asp.net-mvc-2


    【解决方案1】:

    试试AsyncFunction(&lt;%: divLoadGif %&gt;, &lt;%: divRealData %&gt;, &lt;%: n %&gt;);

    【讨论】: