Rumah pembangunan bahagian belakang Tutorial C#.Net .NET MyMVC框架执行Action的过程详解

.NET MyMVC框架执行Action的过程详解

May 17, 2017 am 11:29 AM

在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);
    }
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

前面我不是没有说调用SetResponseCache()的时机嘛,这个时机就是在这里:执行完Action后。
设置过OutputCache后,就是处理返回值了。

前面那段代码中,还有一句重要的调用:

// 准备要传给调用方法的参数object[] parameters = GetActionCallParameters(context, info.Action);
Salin selepas log masuk

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. ASP免费视频教程

3. 入门级的.NET MVC 实例

4.  MyMVC框查找Action的过程详解

5. .NET MyMVC框架处理返回值的教程

6. .NET MyMVC框架如何给方法赋值的教程

Atas ialah kandungan terperinci .NET MyMVC框架执行Action的过程详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DJI Osmo Action 5 Pro: Tarikh keluaran diperkatakan apabila peruncit mendedahkan harga pelancaran yang boleh mengurangkan GoPro Hero 13 Black DJI Osmo Action 5 Pro: Tarikh keluaran diperkatakan apabila peruncit mendedahkan harga pelancaran yang boleh mengurangkan GoPro Hero 13 Black Sep 04, 2024 am 06:51 AM

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

Kamera aksi DJI Osmo baharu dikesan sebelum kemungkinan pelancaran musim panas 2024 untuk menyaingi keluaran GoPro dan Insta360 baru-baru ini Kamera aksi DJI Osmo baharu dikesan sebelum kemungkinan pelancaran musim panas 2024 untuk menyaingi keluaran GoPro dan Insta360 baru-baru ini Jul 01, 2024 am 09:49 AM

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

Insta360 Go 3S: Kamera tindakan 4K boleh poket baharu dikeluarkan seberat 39 g sahaja dengan sokongan Apple Find My Insta360 Go 3S: Kamera tindakan 4K boleh poket baharu dikeluarkan seberat 39 g sahaja dengan sokongan Apple Find My Jun 14, 2024 pm 06:05 PM

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

Penjelasan terperinci mengenai operasi tak segerak Tindakan pengurusan keadaan Vuex Penjelasan terperinci mengenai operasi tak segerak Tindakan pengurusan keadaan Vuex Aug 10, 2022 pm 03:29 PM

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 mengeluarkan kamera aksi Hero 13 Black baharu dengan mod kanta baharu bersama Hero GoPro yang ingin tahu GoPro mengeluarkan kamera aksi Hero 13 Black baharu dengan mod kanta baharu bersama Hero GoPro yang ingin tahu Sep 05, 2024 am 06:45 AM

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

Bagaimana untuk melaksanakan tindakan klien java elasticsearch Bagaimana untuk melaksanakan tindakan klien java elasticsearch May 22, 2023 am 08:43 AM

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.

GoPro Hero: Kamera aksi bersaiz poket baharu bocor bersama-sama dengan tarikh keluaran khabar angin GoPro Hero: Kamera aksi bersaiz poket baharu bocor bersama-sama dengan tarikh keluaran khabar angin Aug 16, 2024 am 09:43 AM

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

Tawaran | Jam tangan pintar Amazfit GTR 3 Pro Edisi Terhad dengan hayat bateri 12 hari, GPS dan 1,000 nits AMOLED kini tersedia pada harga hanya $125 Tawaran | Jam tangan pintar Amazfit GTR 3 Pro Edisi Terhad dengan hayat bateri 12 hari, GPS dan 1,000 nits AMOLED kini tersedia pada harga hanya $125 Aug 15, 2024 am 11:14 AM

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

See all articles