-4

我正在使用asp.net mvc 4.0 剃须刀

在我的控制器中,我有 5 个存储过程可以在单击按钮时执行。该过程运行良好。但每个程序需要 30-60 秒才能执行。在这个时候,我可以在 javascript 的帮助下显示一个 .GIF 图像(处理...)。但是在我的视图页面中某处完成每个 SP 的执行后,我必须显示一条消息。喜欢 :

  1. “dbExcel 正在处理”
  2. “dbExcel 进程完成”
  3. “dbCSV 正在处理”
  4. “dbCSV 进程已完成”.................................................................. .....................

我了解到我必须使用ajax来做到这一点。我对此一无所知,而且我有很短的时间无法很好地学习 ajax 并自己找到解决方案。我想要一个简单的指导方针,我可以解决这个问题。

4

1 回答 1

1

在 MVC 中服务 Ajax 调用非常简单。您可以在控制器中定义以 JSON 格式而不是页面视图返回数据的操作,并使用 jQuery 或类似方法从 JavaScript 调用这些操作。

这是一个获取当前时间为刻度的示例控制器方法:

public class HomeController : Controller
{
...

    public JsonResult GetTicks()
    {
        return Json(DateTime.Now.Ticks, JsonRequestBehavior.AllowGet);
    }
}

以及调用它的 jQuery 调用:

$.ajax({ 
    url: "/Home/GetTicks", 
    cache: false, 
    success: function (result) {
        alert(result);
    }
});

您可以使用此技术轮询您的服务器以了解长期运行任务的当前状态,并在您的页面上显示结果。我将创建两个控制器操作 - 一个用于启动在工作线程中运行的任务,另一个用于报告任务的进度。

我强烈建议使用 Firebug 之类的工具来检查 ajax 调用的网络请求/响应数据。当我开始使用这些东西时,它对我帮助很大。

于 2013-02-18T19:26:46.420 回答