2012-03-15 86 views
0

我有一个controller操作可以生成pdf,而不是由用户下载。MVC3从视图中触发控制器操作

它很好用,但需要few seconds。 我想有一个下载着陆视图显示如“正在处理您的文档...请稍候”。我们摆弄了一些脚本,如.blockUI(),但这不是老板们想要的。

所以我有一个登陆页面,工作得很好,但如果我尝试运行

@Html.Action("SlowAction", "Controller", routeVals) 

视图不显示,直到"SlowAction"已完成。这几乎消除了登录页面的用途。

实质上,我希望着陆视图呈现然后调用"SlowAction"控制器操作。也许一些脚本可以算作10密西西比然后称之为行动?可悲的是我对java/ajax脚本知之甚少。

+1

我认为,解决这个问题最好的办法就是阅读有关jQuery的AJAX一些博客和教程GET。 您可以轻松地调用您的慢动作页面,GET将被触发onload,并且当它成功时,您可以触发消息,下载或任何你想要的。 – QQping 2012-03-15 14:02:30

回答

1
$.ajax({ 
    type:'GET', 
    url: '@Url.Action("ActionName", "ControllerName")', 
    async:true, 
    success:function(response){ 
     //Do Something With response object returned by your action 
    } 
}); 

看看位于这里阿贾克斯阿贾克斯文档http://api.jquery.com/jQuery.ajax/

+0

非常棒!谢谢你的提示。现在要更好地学习ajax,并更好地处理响应,并且我将全部设置好。 – Marc 2012-03-15 14:58:47

+0

您实际上想要在ASP.Net MVC 3中使用@ Url.Action语法3 – 2012-03-15 20:31:06

+0

@ Url.Action不能从单独的js文件中运行。 – 360Airwalk 2013-03-19 18:08:39

相关问题