我正在使用 asp.net mvc 4.0 razor
在我的控制器中,我有5个存储过程来执行单击按钮。这个过程很好。但每个过程需要30-60秒才能执行。在这个时候,我可以借助javascript显示.GIF图像(处理...)。但是,在浏览页面的某个地方完成每个SP的执行后,我必须显示消息。喜欢:
我了解到我必须使用 ajax 执行此操作。我对此一无所知,我有一段时间不能很好地学习ajax并自己找到解决方案。我想要一个简单的指导方针,我可以解决这个问题。
答案 0 :(得分:1)
在MVC中处理Ajax调用非常简单。您可以在控制器中定义以JSON格式而不是页面视图返回数据的操作,并使用jQuery或类似方法从JavaScript调用这些操作。
这是一个将当前时间作为Ticks获取的示例控制器方法:
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调用的网络请求/响应数据。当我开始使用这些东西时,它对我帮助很大。