Kooboo CMS - 之后台注册用户流程方法。
今天决定写一篇好一点的文章,吼吼!首先我们必须找到这个文件,这个文件是UsersController.cs,我们找到和添加新用户有关的方法,如下代码:
public virtual ActionResult Create()
{
return View();
} [HttpPost]
public virtual ActionResult Create(CreateUserModel model, string @return)
{
var data = new JsonResultData(ModelState); if (ModelState.IsValid)
{
data.RunWithTry((resultData) =>
{
UserManager.Add(model.ToUser());
data.RedirectUrl = @return;
});
}
return Json(data); }
注意到这是一个虚方法,我指的是后面的POST请求带来的方法。

我们可以看到CreateUserModel里面有这些东西。这些东西都是我从VIEW里面带过来的。
这个jsonResultEntry就是我们的LAMBDA表达式左边的部分。

而里面的Action<JsonResultData>其实是一个匿名的委托方法。要说这2个东西,其实我个人感觉很有渊源啊,看下面的图

其实这个jsonResultEntry就是一个形式参数的入口。
我们打开这里面进行查看
{Method = {Void <Create>b__4(Kooboo.CMS.Common.JsonResultData)}}
不过为什么呢?既然这个方法是一个带参数的JsonResultData类型的。哈哈,我也不知道了。
下面是打断点到这之后的结果。

好吧,下面继续,居然到了这个方法。贴代码:
protected override void InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
{
if (actionResult is FileResult)
{
controllerContext.HttpContext.Response.RestoreRawOutput();
}
base.InvokeActionResult(controllerContext, actionResult);
}
大家注意到了没有,这里居然有一个override的方法,这证明我们自己写了一个方法去覆盖系统原有的。

后面的ACTIONRESULT就是刚刚前一步返回的ActionResult.
下面的FILERESULT暂时不管。
哈哈,到这一步我才知道,原来最终还是调用基类的方法哦,我就说阿不咋这么叼,自己开始改MVC底层了,汗死。

进行了若干步骤以后。。。。到了一个httpapplicationHooker方法里面,执行这个方法。
public virtual void Application_EndRequest(object sender, EventArgs e)
{
RunEvents((events) =>
{
events.Application_EndRequest(sender, e);
});
}
嘿嘿,这个RunEvent是底层的方法,被我发现了。
protected virtual void RunEvents(Action<IHttpApplicationEvents> action)
{
var events = EngineContext.Current.ResolveAll<IHttpApplicationEvents>(); foreach (var item in events)
{
action(item);
}
}
当我看到这个ResolveAll以后,我第一反应就是“依赖注入,控制反转”。当然这里我不深入研究。
我们看下面的

这里相当于循环执行了容器里面的所有方法,不然对不起这个RunEvent的名字啊。
到此为止,新增用户的操作就完成了,不过我还是感到一头雾水啊。。。。。。也许是我太笨了吧。
Kooboo CMS - 之后台注册用户流程方法。的更多相关文章
- Kooboo CMS - Html.FrontHtml[Helper.cs] 各个方法详解
下面罗列了方法详解,每一个方法一篇文章. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解 Kooboo CMS - Html.FrontHtml.Posit ...
- ASP.NET后台注册JS的方法
1. 用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("hel ...
- Kooboo CMS 无聊随笔 (1)
因为公司的框架不开源,但是自己一直都有研究框架的兴趣,所以拿了一个开源的框架过来,而这个开源的框架就是Kooboo CMS.首先我无法用言语来形容我对这个CMS的赞美之词了,总之大家知道一点,这个CM ...
- 简易版CMS后台管理系统开发流程
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- Kooboo CMS技术文档之三:切换数据存储方式
切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...
- 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析
作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...
- YII学习,实现基于数据库的后台登录,用户体系.
上次研究Yii框架写到了要完成用户登陆系统.这次接着上次的写. 参考官方权威指南和参考手册,外加各种博客文章.历尽千辛万苦,数遍天上滴星星.完成了后台用户登录.这里用到了YII框架的 CUserIde ...
- ASP.NET Core CMS管理后台
ASP.NET Core+LayUI+MySql CMS管理后台,主要功能包括 登录.修改密码,账号管理,菜单管理,角色权限管理等 由于工作之外,抽时间写的,用于学习交流,请慎重用于生产环境 项目概要 ...
- Kooboo CMS技术文档之二:Kooboo CMS的安装步骤
在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...
随机推荐
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- SQl SGA 整理
--查看诊断位置信息 select * from v$diag_info; --查看sga中内存分配信息 select * from sys.x$ksmfs; --查看内存块还剩余多少 select ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- doduicms 手机和pc同步 链接处理
sitem.aspx 加上 Session.Add("ismobile", "1"); string mobile = HttpContext.Current. ...
- C++类型转换函数
1.什么是类型转换函数 类型转换函数的作用是将一个类的对象转换成另一类型的数据. class testclass { private: int r; int m; public : testclass ...
- 开发便于运维的Windows服务
过去几个月,DevOps on Windows网站推出了一系列文章,详细讲解了开发者应怎样创建便于运维的Windows服务.这一系列文章详细分析了如何克服在运维部门看来最困难的部分:Windows服务 ...
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)
ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求 ...
- .NET WEB程序员需要掌握的技能
本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...
- Hadoop学习笔记—10.Shuffle过程那点事儿
一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduce阶段总共三个步骤,如下图所示: 其中,Step2.1就 ...
- 如何调试ANDROID下面黑屏问题
最近很多朋友在问,为毛在WINDOWS下对了,跑ANDROID的虚拟机或者真机就黑屏了, 有的是只有FPS信息,有的是连FPS信息都没有.如果是程序能够正常启动,不会闪退,但显示不对. 那十有八九都是 ...