2012-12-21 117 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幫助解決這個問題。謝謝! –

相關問題