结合仓库设计MVC控制器
为了更高效的开发MVC项目,我们对控制器进行了在一次的封装,使得控制器能够获得很好的继承关系,并能以更少
的代码,实现Web项目的开发工作,整个控制器的设计思路如下所示。
从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了RepoController<TEntity>类里面,
本文继续详细介绍这个Web框架控制器类的CRUD具体实现,以便使得大家了解整个Web开发框架的基类控制器的工作原理。
使用默认仓库的具体代码如下:
public class UsersController : RepoController<User>
{
public UsersController()
{
base.Bundle = BundleActivator.Bundle;
}
}
BaseController的设计:
主要解决JSON日期问题,和一些通用的功能函数。
跳转页面的封装。
验证登录。
仓库控制器基类的设计:
控制器权限的设计:
在需要权限控制的Action方法上加入如下代码
[Permission("添加", "Add")]
结合仓库设计MVC控制器的更多相关文章
- 基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计
自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的 ...
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计
http://www.cnblogs.com/wuhuacong/p/3284628.html 自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到 ...
- ASP.NET MVC 控制器激活(一)
ASP.NET MVC 控制器激活(一) 前言 在路由的篇章中讲解了路由的作用,讲着讲着就到了控制器部分了,从本篇开始来讲解MVC中的控制器,控制器是怎么来的?MVC框架对它做了什么?以及前面有的篇幅 ...
- 在MVC控制器里面使用dynamic和ExpandoObject,实现数据转义的输出
在很多时候,我们在数据库里面定义表字段和实际在页面中展示的内容,往往是不太匹配的,页面数据可能是多个表数据的综合体,因此除了我们在表设计的时候考虑周到外,还需要考虑数据展现的处理.如果是常规的处理,那 ...
- 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器
MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将 ...
- mvc 控制器,视图,Razor 语法
mvc 控制器controller:响应用户请求,并修改模型model;输入数据的处理,输出view数据的提供: url入控制器的方法有关联:MVC提供的是方法调用结果: mvc model:是对应用 ...
- 利用 Composer 一步一步构建自己的 PHP 框架(三)——设计 MVC
终于可以 “一次编写,到处发布” 了,泪流满面! 今天凌晨我从一点多开始搞了四个小时到 5:20,终于搞出了个 Emlog 的 MarkDown 插件!欢迎 Emloger 尝试! 本教程示例代码见 ...
- MVC控制器里面使用dynamic和ExpandoObject
MVC控制器里面使用dynamic和ExpandoObject 在很多时候,我们在数据库里面定义表字段和实际在页面中展示的内容,往往是不太匹配的,页面数据可能是多个表数据的综合体,因此除了我们在表设计 ...
- MVC 控制器
ASP.NET MVC控制器(一) 前言 在路由的篇章中讲解了路由的作用,讲着讲着就到了控制器部分了,从本篇开始来讲解MVC中的控制器,控制器是怎么来的?MVC框架对它做了什么?以及前面有的篇幅所留的 ...
随机推荐
- JavaScript 设计模式 - 工具函数
1.类式继承,模拟面向对象语言的继承方式 function extend(subClass, superClass) { var F = function() {}; F.prototype = su ...
- c# XML序列化与反序列化 属性字段标识
序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAt ...
- CobarClient源码分析(1)
CobarClient是阿里巴巴公司开发一个的开源的.基于iBatis和Spring的分布式数据库访问层.为了支持iBatis,Spring框架提供了一个SqlMapClientTemplate,通过 ...
- 『TCP/IP详解——卷一:协议』读书笔记——08
2013-08-21 13:56:23 3.3 IP路由选择 1. IP路由选择有两种情况.(1)如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就 ...
- wiredtiger - hazard pointers
http://www.drdobbs.com/lock-free-data-structures-with-hazard-po/184401890 memory deallocation lock- ...
- FFMpeg写MP4文件例子分析
http://blog.csdn.net/eightdegree/article/details/7425811 这段时间看了FFMpeg提供的例子muxing.c,我略微修改了下源代码,使其生成一个 ...
- day4----生成器,迭代器
迭代器,生成器,装饰器 1.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要 ...
- oracle 10g在redhat5下的安装
[root@localhost ~]# groupadd dba -g 111 [root@localhost ~]# groupadd oinstall -g 110 [root@localhost ...
- ELMAH入门
简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理程序,是一种应用广泛的错误日志工具是完全可插拔.它可以动态添加到一个正在运行的ASP.NE ...
- Unity3D启动报错的解决方案
在Windows Server 2003 下安装好Unity3D,启动时报错--“Failed to initialize unity graphics.”,截图如下: 在网上搜了一下,说是要启用D3 ...