本文摘自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的过程详解的详细内容!
相关阅读 >>
.net中core使用socket与树莓派进行通信的实例分析(图文)
.net core如何动态调用泛型解决方法
.net core配置与自动更新的实现方法_实用技巧
分享n种.net获取当前路径的的实例
关于.net mvc中如何使用forms验证的具体介绍
c#中关于扩展方法的实例分析
.net mvc 使用ueditor上传图片
.net添加时间戳防止重放攻击
c#中自定义控件如何实现textbox禁止粘贴的示例代码
c#中匿名委托以及lambda表达式的实例详解
更多相关阅读请进入《.net》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » .NET MyMVC框架执行Action的过程详解