2014-02-14 53 views
2

我有一個包含6個圖表的頁面。當用戶第一次打開頁面時,我只想加載頁面佈局,然後用ajax分開每個圖表,因爲每個圖表在服務器端需要幾秒鐘才能生成。是否有可能使用@ Ajax.BeginForm使用剃刀語法來做到這一點,還是使用JQuery更好?加載頁面後,ASP.NET MVC會調用ajax調用嗎?

回答

1

我會爭辯說,它會更好地使用jQuery。原因是Ajax.BeginForm會輸出一個表單,如果您希望它用於將數據發送回服務器,那麼這樣做纔有意義。

如果你想要做的是加載圖表異步它可能是最好使用查詢,例如:

$(function(){ 
$('#divForChart1').load('@Url.Action("ActionThatGeneratesChart1", "ChartController"); 
$('#divForChart2').load('@Url.Action("ActionThatGeneratesChart2", "ChartController"); 
... 
}); 
+0

什麼JQuery的事件,我將不得不使用Ajax調用火到服務器時,頁面裝? $ .ready可能不合適,因爲每次加載頁面時都會觸發,關於它是第一次加載還是因爲回發後加載。 –

+0

MVC中的webforms意義上沒有回傳(您正在使用MVC4嗎?)。因此,如果您的頁面中確實有內容發佈回自己,您需要使用ready事件,因爲需要刷新整個頁面,包括圖表。 – Rui

+0

是的,我正在使用MVC 4.如果我正確地理解準備好的事件觸發器,僅當頁面首次加載並且在Ajax調用完成時不會觸發? –