2014-02-14 51 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调用完成时不会触发? –