0

我有一个包含 html.RenderPartial 的页面,它呈现 ASP.NET MVC 部分视图。

局部视图用作 jQuery 对话框,并从呈现它的页面打开。

问题是在部分视图中,我想在显示对话框时加载和存储一个变量。在对话框内工作时,此数据用于一些查找。但是当带有局部视图的页面加载时,局部视图中的 jQuerygetJson会被调用两次。为什么?

部分视图内的代码如下所示:

<script type="text/javascript">
$(function() {
    var groups = null;    

    $.getJSON("/RessourceGroup/List", null, function(data) {
        groups = data;
    });

在 Firebug 中,我可以看到页面(视图)被加载一次,但部分视图中的上述脚本仍然被调用了两次。为什么?

4

1 回答 1

1

看起来它会在页面加载时加载。当对话框弹出时,您是否还通过 AJAX 重新加载部分?如果是这样,那么它可能会再次运行。

编辑:根据您的更新,我怀疑脚本标签在 DIV 内,并且在调用对话框小部件时正在克隆 DIV。将脚本移到对话框正在使用的 DIV 之外,应该可以解决您的问题。

于 2009-07-08T21:32:59.520 回答