2012-12-21 63 views
6

我有一个ASP.NET MVC 4视图,它通过JQuery AJAX调用动态地将两个嵌套的部分加载到<div>元素中。每个部分都有自己的一大堆Javascript。为了得到这一切的工作,我公司目前拥有的所有JavaScript中的每个AJAX调用的success使用AJAX加载Javascript和MVC4部分视图

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的脚本调试工具,而且我很难弄清楚如何(以及如果)我可以加载这个脚本文件。我试过了:

No script in debugger

  • 添加脚本包括到主视图。这不起作用。没有 的部分的Javascript附加正确,这是有道理的 同步级别。

Stuff does not work

有什么办法,我可以有一个AJAX一个单独的JavaScript文件加载部分,仍然能够调试部分在客户端上?更重要的是,我在哪里可以将所有这个Javascript加载到AJAX加载的部分视图中?

回答

5

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

+0

有没有一种方法可以把这些功能放在一个单独的脚本文件中? –

+0

是;基本上你会将你的整个_DiagnosticAssessment.js_文件包装在一个已命名的函数中,然后通过名称调用该函数来执行代码。 – Mathletics

+1

不幸的是,我在Javascript中有很多剃刀语法调用(比如'@ Url.Action()')。幸运的是,我想我可以通过http://stackoverflow.com/q/4624626/27457帮助解决这个问题。谢谢! –

相关问题