程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 使用ASP.NET MVC Futures中的異步Action

使用ASP.NET MVC Futures中的異步Action

編輯:關於ASP.NET

之前看過老趙這兩篇文章。也研究了一下老趙異步的實現方式。

不過感覺自己擴展的話,在ASP.NET MVC中使用異步還真是麻煩,剛好看到從RC1版開始 ASP.NET MVC Futures中提供了幾個支持異步的類。

相關的類包括AsyncActionDescriptor、AsyncController、AsyncControllerActionInvoker、 AsyncManager、AsyncResultWrapper、AsyncTimeoutAttribute、NoAsyncTimeoutAttribute,相關接口有 IAsyncActionDescriptor、IAsyncActionInvoker、IAsyncController、IAsyncManagerContainer。

下面說一下怎麼用它們

一、使用異步Action前的准備工作

1.引用Microsoft.Web.Mvc。    

2.先要將要異步處理的Url交由MvcHttpAsyncHandler處理,這一步可以由 AsyncRouteCollectionExtensions.MapAsyncRoute來設置規則,將原MapRoute處理的規則改為 MapAsyncRoute,如:

      routes.MapAsyncRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" }
      );

3.將相應的Controller繼承於AsyncController。

  public class HomeController : AsyncController  {  }

4.我們約定以下定義的Action都在HomeController中

二、第一種異步Action方式:Action、ActionCompleted方式

ASP.NET MVC Futures支持按名稱自動尋找異步Action的方法

Url:/Home/Async1

其使用方法為

    public void Async1(){
      //主線程
    }
    public ActionResult Async1Completed(){
      //自動尋找與主線程 Action名稱+Completed 的Action 做為異步Action
      return Content("Async1");
    }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved