使用AJAX加载的Javascript和MVC4局部视图

使用AJAX加载的Javascript和MVC4局部视图,javascript,debugging,jquery,asp.net-mvc-4,partial-views,Javascript,Debugging,Jquery,Asp.net Mvc 4,Partial Views,我有一个ASP.NETMVC4视图,它通过jQueryAjax调用将两个嵌套的部分动态加载到元素中。每个部分都有一大堆自己的Javascript。为了让一切正常工作,我目前在每个AJAX调用的success中都有所有Javascript: function LoadPartial(someImportantId) { $.ajax({ url: '@Url.Action("LoadThePartial")' + '?id=' + someImporta

我有一个ASP.NETMVC4视图,它通过jQueryAjax调用将两个嵌套的部分动态加载到
元素中。每个部分都有一大堆自己的Javascript。为了让一切正常工作,我目前在每个AJAX调用的
success
中都有所有Javascript:

function LoadPartial(someImportantId) {
    $.ajax({
        url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
        type: 'POST',
        async: false,
        success: function (result) {
            $("#partialContainerDiv").html(result);
            //here there be great piles of javascript
        }
    });
}
因为有两个部分,每个部分都需要数百行Javascript,所以主视图文件越来越难以管理。我很想把所有的脚本代码放在一个单独的.js文件中,但我对Javascript还不够了解,所以我非常依赖Chrome的脚本调试工具,我很难弄清楚如何(以及是否)加载这个脚本文件。我试过:

  • 向部分文件添加脚本include。在这种情况下 partial的Javascript在运行时仍然不加载,并且

  • 将脚本包含添加到主视图。这不管用。没有一个 的Javascript正确地附加,这在 同步级别


有没有什么方法可以让我为一个AJAX加载的部分使用单独的Javascript文件,并且仍然能够在客户端调试该部分?更重要的是,我应该将所有用于AJAX加载的部分视图的Javascript放在哪里?

将部分视图的脚本包装到主页中包含的函数中;调用AJAX成功处理程序中的函数,在加载分区后执行脚本。

现在有一个解决方案,可以将动态JS代码放入主要浏览器的Sources树视图中,这就是使其可调试所需的全部内容。加:

//# sourceURL=YOUR_FILENAME_OR_FULL_PATH_HERE
动态加载的局部视图中
标记内的任意位置。在我的实验中,#后面的空格似乎在Chrome中是必需的,而在Firefox中不是,这基本上意味着它是必需的


来源:还有其他几个堆栈溢出问题

有没有办法将函数放在单独的脚本文件中?有;实际上,您需要将整个diagnosticsessment.js文件包装在一个命名函数中,然后在准备好后按名称调用该函数以执行代码。不幸的是,我的Javascript中有很多razor语法调用(如
@Url.Action()
)。幸运的是,我想我可以在你的帮助下解决这个问题。谢谢