本文摘自PHP中文网,作者Y2J,侵删。
在AjaxHandlerFactory的GetHandler方法中,最后将创建一个ActionHandler,这是一个HttpHandler, 它将在管线的第15个步骤中被调用(引用博客【用Asp.net写自己的服务框架】中的顺序)。注意:AjaxHandlerFactory的GetHandler方法是在第10步中调用的,第12步就是在准备Session(非进程内模式), 因此,必须在第12步前决定Session的使用方式。
所有的Action代码都是在ActionHandler中执行的:
1 2 3 | internal class ActionHandler : IHttpHandler{ internal InvokeInfo InvokeInfo; public void ProcessRequest(HttpContext context)
{
}
|
ExecuteAction的实现过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | internal static void ExecuteAction(HttpContext context, InvokeInfo vkInfo)
{ if ( context == null ) throw new ArgumentNullException( "context" ); if ( vkInfo == null ) throw new ArgumentNullException( "vkInfo" );
outputCache.SetResponseCache(context);
executeResult.Ouput(context);
} else { if ( result != null ) {
context.Response.Write(result.ToString());
}
}
} internal static object ExecuteActionInternal(HttpContext context, InvokeInfo info)
{
info.Action.MethodInfo.Invoke(info.Instance, parameters); return null ;
}
}
|
前面我不是没有说调用SetResponseCache()的时机嘛,这个时机就是在这里:执行完Action后。
设置过OutputCache后,就是处理返回值了。
前面那段代码中,还有一句重要的调用:
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. ASP免费视频教程
3. 入门级的.NET MVC 实例
4. MyMVC框查找Action的过程详解
5. .NET MyMVC框架处理返回值的教程
6. .NET MyMVC框架如何给方法赋值的教程
以上就是.NET MyMVC框架执行Action的过程详解的详细内容!
相关阅读 >>
有关c#工厂模式简单讲解
总结.net平台上一些常用的框架
使用c#操作windowad之的windows用户组
比较c#和java中面向对象语法的区别
c# 定时器timer的实例介绍
.net实现微信js-sdk分享功能代码展示
c#中关于dbnull的解释
解析.net逻辑分层架构
c#串口通信的实例教程
.net用repeater实现分页效果的代码详解
更多相关阅读请进入《.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » .NET MyMVC框架执行Action的过程详解