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 - 之后台注册用户流程方法。相关推荐
- 海洋CMS忘记后台管理员密码解决方法
海洋CMS忘记后台管理员密码解决方法: 由于我们生活中的账号密码实在太多,一个网站一个账号,难免会有忘记账号密码的尴尬事情出现. 今天就来说下关于海洋cms忘记后台管理员密码的解决方法. 需要的前提的 ...
- 【编程开发】之短信注册用户流程
注册用户账号需要使用手机验证码进行操作,而手机验证码发送使用的是阿里云短信服务,发送短信操作可以参考:阿里云短信服务官方文档 .其原理也比较简单,下面是使用步骤: 首先我们需要引入相关依赖: < ...
- Kooboo CMS - Html.FrontHtml[Helper.cs] 各个方法详解
下面罗列了方法详解,每一个方法一篇文章. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解 Kooboo CMS - Html.FrontHtml.Posit ...
- ASP.NET后台注册javascript脚本方法
ASP.NET使用新增的Page.ClientScript属性在ASP.NET页面上注册和使用Javascript函数. 注意: .NET Framewrok 1.0/1.1中的Page.Regist ...
- Kooboo CMS 无聊随笔 (1)
因为公司的框架不开源,但是自己一直都有研究框架的兴趣,所以拿了一个开源的框架过来,而这个开源的框架就是Kooboo CMS.首先我无法用言语来形容我对这个CMS的赞美之词了,总之大家知道一点,这个CM ...
- 阿里云账号注册流程方法(图文教程)
购买阿里云服务器.域名或者其他云产品都需要阿里云账号,而且账号必须实名认证否则购买不了,云吞铺子分享账号注册流程方法及常见问题解答: 阿里云账号注册流程方法 1. 先打开阿里云官网www.aliyun ...
- 帝国cms教程后台关键字和tag标签自动同步更新的方法
帝国cms教程后台关键字和tag标签自动同步更新的方法 在使用帝国cms做网站时,用到一个很有用的功能代码,添加文章的关键字时,把输入的关键字自动复制到tag标签,功能随简单,但很实用, 我们先通过帝 ...
- JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法
JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法 获取input框用户输入信息数组存储 var datas = {Id: idData.id,OrderDetailCode: ...
- domino服务器注册用户,Domino服务器删除用户流程
Domino服务器删除用户流程(图解) 长颈叔叔在论坛里给出过删除用户的详细流程不过是英文的,经过实践给个中文的解释方便大家查阅! 一.删除用户需要的权限 对 Domino 目录拥有带"删除 ...
最新文章
- 利用计算机模拟人脑进行演绎,2014年4月自学考试计算机应用技术试题
- TYVJ P1069 cowtour 看不懂题意
- PostgreSQL扫盲教程
- dubbo-admin安装和简单使用
- 怎样直接在列表修改数据html,谈谈yii2-GridView如何实现列表页直接修改数据
- MaxScale中间件部署数据库读写分离
- 域中添加电脑提示重名
- 数据在数组中存储的顺序:小端 OR 大端模式 详解
- Activity (一)工作流简介 :概念与由来
- 皮尔逊相关系数(Pearson Correlation Coefficient)
- Fastadmin读取数据库配置
- jwt的token自动续约_关于JWT Token 自动续期的解决方案
- 51nod 1548 欧姆诺姆和糖果【思维+分类讨论】
- nginx反向代理异步传输模式(原理)
- 用matlab对相机进行标定获取相机内参
- [渝粤教育] 首都师范大学 走进舞蹈艺术 参考 资料
- MYSQL1146解决方法
- cjson解析器说明
- anaconda中spyder无法安装5.3.3的解决方案solving environment failed
- 维瑞最新推出5年期VeriSign SSL证书价格
热门文章
- java搭建直播商城VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城
- 国家自然科学基金“十四五”优先发展领域!
- 一款内网横向渗透辅助工具
- springboot 集成 RabbitMQ confirm 确认模式和 return 回退模式以及Consumer Ack模式
- 学习发展历史,真的一无所用吗?NO
- 红外热成像仪测温模块简要介绍说明
- 最简单日柱推算法_干支记日推算方法揭秘
- ffpmpeg 音量_有画面无声音 · Issue #2729 · bilibili/ijkplayer · GitHub
- windows电脑中的待机、休眠和睡眠状态的区别
- 内蒙古最新八大员安全员模拟真题题库及答案