.NET MyMVC框架执行Action的过程详解
在AjaxHandlerFactory的GetHandler方法中,最后将创建一个ActionHandler,这是一个HttpHandler, 它将在管线的第15个步骤中被调用(引用博客【用Asp.net写自己的服务框架】中的顺序)。
注意:AjaxHandlerFactory的GetHandler方法是在第10步中调用的,第12步就是在准备Session(非进程内模式), 因此,必须在第12步前决定Session的使用方式。
所有的Action代码都是在ActionHandler中执行的:
internal class ActionHandler : IHttpHandler{ internal InvokeInfo InvokeInfo; public void ProcessRequest(HttpContext context) { // 调用核心的工具类,执行Action ActionExecutor.ExecuteAction(context, this.InvokeInfo); }
ExecuteAction的实现过程如下:
internal static void ExecuteAction(HttpContext context, InvokeInfo vkInfo) { if( context == null ) throw new ArgumentNullException("context"); if( vkInfo == null ) throw new ArgumentNullException("vkInfo"); // 调用方法 object result = ExecuteActionInternal(context, vkInfo); // 设置OutputCache OutputCacheAttribute outputCache = vkInfo.GetOutputCacheSetting(); if( outputCache != null ) outputCache.SetResponseCache(context); // 处理方法的返回结果 IActionResult executeResult = result as IActionResult; if( executeResult != null ) { executeResult.Ouput(context); } else { if( result != null ) { // 普通类型结果 context.Response.ContentType = "text/plain"; context.Response.Write(result.ToString()); } } }internal static object ExecuteActionInternal(HttpContext context, InvokeInfo info) { // 准备要传给调用方法的参数 object[] parameters = GetActionCallParameters(context, info.Action); // 调用方法 if( info.Action.HasReturn ) return info.Action.MethodInfo.Invoke(info.Instance, parameters); else { info.Action.MethodInfo.Invoke(info.Instance, parameters); return null; } }
前面我不是没有说调用SetResponseCache()的时机嘛,这个时机就是在这里:执行完Action后。
设置过OutputCache后,就是处理返回值了。
前面那段代码中,还有一句重要的调用:
// 准备要传给调用方法的参数object[] parameters = GetActionCallParameters(context, info.Action);
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. ASP免费视频教程
Atas ialah kandungan terperinci .NET MyMVC框架执行Action的过程详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

DJI belum mengesahkan sebarang rancangan untuk memperkenalkan kamera aksi baharu lagi. Sebaliknya, nampaknya GoPro akan mendahului pesaingnya tahun ini, setelah mengusik bahawa ia akan memperkenalkan dua kamera aksi baharu pada 4 September. Untuk konteks, ini dijangka

Hampir setahun telah berlalu sejak DJI mengeluarkan Osmo Action 4 (kurr. $299 di Amazon). Sejak itu, syarikat itu telah memberi tumpuan kepada bahagian lainnya, termasuk gimbal kamera RS baharu. Selain itu, ia juga telah memperkenalkan pelbagai dron seperti Avata

Insta360telah mengeluarkan kamera pelakon, yang kedua dalam tahun selepasInsta360X4(semasa $499.99 pada Amazon). Seperti yang dijangkakan, syarikat itu telah memperkenalkan Go3S, menaik taraf bahawaGo3that menambah 4K keupayaan rakaman video. Khususnya, semasa Inst

Dalam sesetengah kes, kami ingin melakukan beberapa operasi tak segerak dalam Vuex, seperti permintaan rangkaian, yang mesti tidak segerak Bagaimana untuk menangani situasi ini Di bawah saya akan memperkenalkan kepada anda operasi tak segerak bagi pengurusan keadaan Vuex membantu rakan-rakan yang memerlukan!

GoPro kini telah memperkenalkan penyegaran kamera tindakan tahunannya. Tidak seperti beberapa tahun kebelakangan ini, syarikat itu telah memutuskan untuk mengeluarkan dua model. Walau bagaimanapun, ia tidak kembali ke kamera 360 darjah, walaupun kali ini mengusik tahun lepas bahawa ia akan menggantikan Max wi

Kebanyakan operasi dalam elasticsearch adalah melalui tindakan yang sepadan, yang terdapat dalam pakej tindakan. Strukturnya ditunjukkan dalam rajah di bawah: Rajah di atas ialah tangkapan skrin separa pakej tindakan, yang sepadan dengan tindakan setiap fungsi. Pakej setiap tindakan juga sangat serupa dengan indeks. Pelaksanaan tindakan ini juga sangat serupa, semuanya adalah tindakan kendiri asas Rajah berikut menunjukkan hubungan pewarisan indexaction: Oleh kerana tindakan ini sebenarnya tidak melaksanakan fungsi yang sepadan, ia hanyalah proksi, jadi pelaksanaannya juga. sangat mudah. Fungsi utama mereka adalah untuk menyediakan kaedah untuk mencipta respons dan permintaan baharu serta tindakan yang sepadan.

Butiran kamera tindakan GoPro yang benar-benar baharu telah bocor dalam talian bersama maklumat yang setara tentang Hero 13 Black. Sila ambil perhatian bahawa maklumat yang terkandung di bawah dikatakan berasal dari penyenaraian Amazon AS yang sejak itu telah dialih keluar

Amazfit GTR 3 Pro Edisi Terhad kini dijual di Amazon dengan harga hanya $124.99, turun 40% daripada harga senarainya $209.99. Berbanding dengan versi standard yang mempunyai bekas aluminium, Amazfit GTR 3 Pro Edisi Terhad menggunakan noda yang digilap tangan
