推薦:注意ADO.NET中容易混淆的概念一、DataTable DataTable表示內(nèi)存中數(shù)據(jù)的一個(gè)表,它完全是在內(nèi)存中的一個(gè)獨(dú)立存在,包含了這張表的全部信息。DataTable可以是從通過(guò)連接從數(shù)據(jù)庫(kù)中讀取出來(lái)形成的一個(gè)表,一旦將內(nèi)容讀到DataTable中,此DataTable就可以跟數(shù)據(jù)源斷開而獨(dú)立存在;也可以是完
在ASP.NET MVC中使用異步是比較麻煩的,從RC1版開始ASP.NET MVC Futures中提供了幾個(gè)支持異步的類。
相關(guān)的類有:AsyncActionDescriptor、AsyncController、AsyncControllerActionInvoker、AsyncManager、AsyncResultWrapper、AsyncTimeoutAttribute、NoAsyncTimeoutAttribute。
相關(guān)接口有:IAsyncActionDescriptor、IAsyncActionInvoker、IAsyncController、IAsyncManagerContainer。
下面講解一下怎么用它們
一、使用異步Action前的準(zhǔn)備工作
1.引用Microsoft.Web.Mvc。
2.先要將要異步處理的Url交由MvcHttpAsyncHandler處理,這一步可以由AsyncRouteCollectionExtensions.MapAsyncRoute來(lái)設(shè)置規(guī)則,將原MapRoute處理的規(guī)則改為MapAsyncRoute,如:
routes.MapAsyncRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
3.將相應(yīng)的Controller繼承于AsyncController。
public class HomeController : AsyncController { }
4.我們約定以下定義的Action都在HomeController中
二、第一種異步Action方式:Action、ActionCompleted方式
ASP.NET MVC Futures支持按名稱自動(dòng)尋找異步Action的方法
其使用方法為:
public void Async1(){
//主線程
}
public ActionResult Async1Completed(){
//自動(dòng)尋找與主線程 Action名稱 Completed 的Action 做為異步Action
return Content("Async1");}
三、第二種異步Action方式:BeginAction、EndAction方式
如果第一種方式你了解了的話第二種自然也不在話下,不過(guò)這種方式是與其它類的異步調(diào)用一起使用。
public delegate void AsyncEventHandler();//這里聲明了一個(gè)委托,//也可使用
WebRequest/WebResponse/SqlConnection來(lái)實(shí)現(xiàn)這個(gè)異步過(guò)程
public void Event1(){}
public IAsyncResult BeginAsync3(AsyncCallback callback, object state){
AsyncEventHandler asy = new AsyncEventHandler(Event1);
ViewData["a"]=asy;//這里在方法
主站蜘蛛池模板:
关岭|
盐源县|
太湖县|
垣曲县|
杭锦旗|
孟津县|
马公市|
玉田县|
青河县|
德格县|
从化市|
新密市|
太原市|
通榆县|
建水县|
开江县|
绥化市|
广南县|
兰考县|
桐梓县|
四子王旗|
洛浦县|
南通市|
唐河县|
墨玉县|
昔阳县|
巴青县|
开远市|
湖南省|
望都县|
教育|
河曲县|
班戈县|
南溪县|
安福县|
菏泽市|
洛阳市|
凤凰县|
菏泽市|
渝中区|
永吉县|