如何使异步结果在ASP.asp.net MVC 3
本文关键字:asp net MVC ASP 何使 异步 结果 | 更新日期: 2023-09-27 17:50:00
我希望在JsonResult中有一个东西,它们在从浏览器[客户端]获得请求后响应,并在完成任务之前快速响应它们。
表示请求在任务完成之前响应,并运行线程来完成任务。
谁能告诉我在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
);
}