【问题标题】:MVC3 trigger a controller action from a viewMVC3 从视图触发控制器动作
【发布时间】:2012-03-16 07:05:03
【问题描述】:

我有一个 controller 操作,它构建一个 pdf 并由用户下载。

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

所以我有一个运行良好的登录页面,但如果我尝试运行

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

"SlowAction" 完成之前,视图不会显示。这几乎抹杀了着陆页的目的。

基本上我希望着陆视图呈现然后调用"SlowAction" 控制器操作。也许一些脚本会计数到 10 Mississippi 然后调用动作?遗憾的是我对 java/ajax 脚本知之甚少。

【问题讨论】:

  • 我认为解决这个问题的最好方法是阅读一些关于 jQuery AJAX GET 的博客和教程。您可以轻松调用您的慢动作页面,GET 将在加载时触发,当它成功时您可以触发消息、下载或任何您想要的

标签: asp.net-mvc-3


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

查看位于此处的 ajax ajax 文档http://api.jquery.com/jQuery.ajax/

【讨论】:

  • 太棒了!谢谢你的提示。现在要更好地学习 ajax 并更好地处理响应,我将一切就绪。
  • 您实际上想在 ASP.Net MVC 3 中使用 @Url.Action 语法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多