MVC4 Action 两种异步方式
Posted dragon.net
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC4 Action 两种异步方式相关的知识,希望对你有一定的参考价值。
1. xxxAsync/xxxCompleted 组合方式异步,xxxCompleted 就是他的回调函数,在执行完 xxxAsync 后调用xxxCompleted 。
使用 异步方式必须继承AsyncController 控制器:
Async 异步方式通过 Controller的属性 AsyncManager 进行赋值 回调,看下面代码:
public class AppController : AsyncController { public void ArticleAsync(string name) { AsyncManager.OutstandingOperations.Increment(); Task.Factory.StartNew(() => { AsyncManager.Parameters["content"] = "hello world"; AsyncManager.OutstandingOperations.Decrement(); }); } public ActionResult ArticleCompleted(string content) { return Content(content); } }
2.Task返回值。
采用第一种方式异步我们需要为一个Action实现两个方法, 所以在MVC4中 定义了一个返回值类型为Task的异步方法。
对于回调内容的显示通过调用Task的ContinueWith<ActionResult> 方法进行注册
public Task<ActionResult> ArticleTask(string name) { return Task.Factory.StartNew(() => { AsyncManager.Parameters["content"] = "hello world"; }).ContinueWith<ActionResult>(task => { string context = (string)AsyncManager.Parameters["content"]; return Content(context); }); }
以上是关于MVC4 Action 两种异步方式的主要内容,如果未能解决你的问题,请参考以下文章
jQuery ajax请求struts action实现异步刷新
mvc4中 @Url.Action 如何读取javascript变量的值