C# 如何在ASP.NET MVC 3中生成异步结果?
我希望JsonResult中有这样一个东西,他们在收到来自浏览器[客户端]的请求后响应,并在完成任务之前快速响应 表示请求在任务完成之前响应,并运行线程来完成任务C# 如何在ASP.NET MVC 3中生成异步结果?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我希望JsonResult中有这样一个东西,他们在收到来自浏览器[客户端]的请求后响应,并在完成任务之前快速响应 表示请求在任务完成之前响应,并运行线程来完成任务 有人能告诉我在asp.net MVC中实现这一点的代码吗?AJAX对您的场景来说还不够吗 $.getJSON('@Url.Action("Foo")', function(result) { // once the task completes this callback will be executed }); // flo
有人能告诉我在asp.net MVC中实现这一点的代码吗?AJAX对您的场景来说还不够吗
$.getJSON('@Url.Action("Foo")', function(result) {
// once the task completes this callback will be executed
});
// flow continues to execute normally
在服务器端:
public ActionResult Foo()
{
// TODO: some task
return Json(someResult, JsonRequestBehavior.AllowGet);
}
如果此任务是I/O密集型任务,则可以利用和I/O完成端口
如果您有火灾和遗忘场景,您可以简单地启动任务并立即从控制器返回:
public ActionResult StartTask()
{
// Fire the task
Task.Factory.StartNew(() =>
{
// TODO: the task goes here
// Remark: Ensure you handle exceptions
});
// return immediately
return Json(
new { Message = "Task started" },
JsonRequestBehavior.AllowGet
);
}