백엔드 개발 C#.Net 튜토리얼 .NET MyMVC 프레임워크에서 Action을 실행하는 과정에 대한 자세한 설명

.NET MyMVC 프레임워크에서 Action을 실행하는 과정에 대한 자세한 설명

May 17, 2017 am 11:29 AM

AjaxHandlerFactory의 GetHandler 메서드에서 마침내 파이프라인의 15번째 단계에서 호출되는 HttpHandler인 ActionHandler가 생성됩니다(블로그 [Write your own service Framework with 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()를 호출하는 타이밍을 언급하지 않았나요? ? , 이번 기회는 액션을 실행한 후입니다.
OutputCache를 설정한 후에는 반환 값을 처리할 차례입니다.

이전 코드에는 또 다른 중요한 호출이 있습니다:

// 准备要传给调用方法的参数object[] parameters = GetActionCallParameters(context, info.Action);
로그인 후 복사

[관련 추천]

1. 특별 추천 : "php Programmer Toolbox" V0.1 버전 다운로드

2. ASP 무료 동영상 튜토리얼

3. -level .NET MVC 예시4.

MyMVC 상자에서 Action을 찾는 과정에 대한 자세한 설명 5 .

.NET MyMVC 프레임워크에서 반환 값을 처리하는 방법에 대한 튜토리얼6.

값을 할당하는 방법에 대한 튜토리얼 ​​.NET MyMVC 프레임워크의 메서드

위 내용은 .NET MyMVC 프레임워크에서 Action을 실행하는 과정에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DJI Osmo Action 5 Pro: 소매업체가 GoPro Hero 13 Black을 약화시킬 수 있는 출시 가격을 공개함에 따라 출시 날짜가 불투명해졌습니다. DJI Osmo Action 5 Pro: 소매업체가 GoPro Hero 13 Black을 약화시킬 수 있는 출시 가격을 공개함에 따라 출시 날짜가 불투명해졌습니다. Sep 04, 2024 am 06:51 AM

DJI는 아직 새로운 액션 카메라 출시 계획을 확정하지 않았습니다. 대신 GoPro는 9월 4일에 두 개의 새로운 액션 카메라를 출시할 것이라고 예고하면서 올해 경쟁사보다 앞서 나갈 것으로 보입니다.

최신 GoPro 및 Insta360 릴리스와 경쟁할 수 있는 새로운 DJI Osmo 액션 카메라가 2024년 여름 출시 예정인 이전에 발견되었습니다. 최신 GoPro 및 Insta360 릴리스와 경쟁할 수 있는 새로운 DJI Osmo 액션 카메라가 2024년 여름 출시 예정인 이전에 발견되었습니다. Jul 01, 2024 am 09:49 AM

DJI가 Osmo Action 4(Amazon에서 현재 $299)를 출시한 지 거의 1년이 지났습니다. 그 이후로 회사는 새로운 RS 카메라 짐벌을 포함한 다른 부서에 집중해 왔습니다. 이 외에도 아바타 등 다양한 드론을 선보였습니다.

Insta360 Go 3S: Apple Find My 지원을 통해 무게가 39g에 불과한 새로운 포켓형 4K 액션 카메라 출시 Insta360 Go 3S: Apple Find My 지원을 통해 무게가 39g에 불과한 새로운 포켓형 4K 액션 카메라 출시 Jun 14, 2024 pm 06:05 PM

Insta360은 Insta360X4(Amazon에서 현재 $499.99)에 이어 올해 두 번째로 새로운 액션 카메라를 출시했습니다. 예상대로 회사는 4K 비디오 녹화 기능을 추가하는 업그레이드된 Go3S를 출시했습니다.구체적으로는 Inst

Vuex 상태 관리의 Action 비동기 작업에 대한 자세한 설명 Vuex 상태 관리의 Action 비동기 작업에 대한 자세한 설명 Aug 10, 2022 pm 03:29 PM

어떤 경우에는 네트워크 요청과 같은 비동기 작업을 Vuex에서 수행하고 싶은데, 이 상황을 어떻게 처리해야 할까요? 아래에서는 Vuex 상태 관리의 비동기 작업을 소개하겠습니다. 도움이 필요한 친구를 도와주세요!

GoPro, 호기심 많은 GoPro Hero와 함께 새로운 렌즈 모드를 갖춘 새로운 Hero 13 Black 액션 카메라 출시 GoPro, 호기심 많은 GoPro Hero와 함께 새로운 렌즈 모드를 갖춘 새로운 Hero 13 Black 액션 카메라 출시 Sep 05, 2024 am 06:45 AM

GoPro는 이제 연간 액션 카메라 교체를 도입했습니다. 최근 몇 년과 달리 회사는 두 가지 모델을 출시하기로 결정했다. 하지만 작년 이맘때쯤 Max wi를 대체할 것이라는 예고에도 불구하고 360도 카메라로 돌아오지 않았습니다.

Elasticsearch Java 클라이언트 작업을 구현하는 방법 Elasticsearch Java 클라이언트 작업을 구현하는 방법 May 22, 2023 am 08:43 AM

Elasticsearch의 대부분의 작업은 작업 패키지에 있는 해당 작업을 통해 이루어집니다. 그 구조는 아래 그림과 같습니다. 위 그림은 각 기능의 동작에 해당하는 동작 패키지의 부분 스크린샷입니다. 각 작업의 패키지도 index와 매우 유사합니다. 이러한 액션의 구현도 매우 유사합니다. 다음 그림은 indexaction의 상속 관계를 보여줍니다. 이러한 액션은 실제로 해당 기능을 구현하지 않으므로 프록시일 뿐이므로 구현도 마찬가지입니다. 매우 간단합니다. 주요 기능은 새로운 응답 및 요청과 해당 작업을 생성하는 방법을 제공하는 것입니다.

GoPro Hero: 소문난 출시일과 함께 새로운 포켓 크기 액션 카메라 유출 GoPro Hero: 소문난 출시일과 함께 새로운 포켓 크기 액션 카메라 유출 Aug 16, 2024 am 09:43 AM

완전히 새로운 GoPro 액션 카메라의 세부 정보가 Hero 13 Black에 대한 동등한 정보와 함께 온라인으로 유출되었습니다. 아래에 포함된 정보는 현재 삭제된 Amazon US 목록에서 가져온 것으로 알려져 있습니다.

거래 | 12일 배터리 수명, GPS 및 1,000니트 AMOLED를 갖춘 Amazfit GTR 3 Pro 한정판 스마트워치를 이제 단 125달러에 구입할 수 있습니다. 거래 | 12일 배터리 수명, GPS 및 1,000니트 AMOLED를 갖춘 Amazfit GTR 3 Pro 한정판 스마트워치를 이제 단 125달러에 구입할 수 있습니다. Aug 15, 2024 am 11:14 AM

Amazfit GTR 3 Pro 한정판은 현재 Amazon에서 정가 $209.99에서 40% 할인된 $124.99에 판매되고 있습니다. 알루미늄 케이스가 있는 표준 버전과 비교하여 Amazfit GTR 3 Pro 한정판은 손으로 광택을 낸 얼룩을 사용합니다.

See all articles