欢迎来到天天文库
浏览记录
ID:28285267
大小:264.00 KB
页数:16页
时间:2018-12-08
《基于mvc4+easyui的web开发框架形成之旅--mvc控制器的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、-自从上篇《基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍》总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的细节,本文主要介绍整个Web开发框架中的MVC控制器的设计。在设计之初,我就希望尽可能的减少代码,提高编程模型的统一性。因此希望能够以基类继承的方式,和我Winform开发框架一样,尽可能通过基类,而不是子类的重复代码来实现各种通用的操作。1、登录控制的控制器基类设计我们知道,一般我们创建一个MVC的控制器,都是基于Controller这样的基类来实现。如下代码所示。publicclassTestCont
2、roller:Controller-页脚---{////GET:/Test/http://www.78name.compublicActionResultIndex(){returnView();}}在我的Winform开发框架里面,用到了泛型的类型,非常方便实现业务逻辑和数据访问基类的设计,控制器是否也可以这样做的呢?我们知道,一般的MVC控制器需要验证用户是否已经登陆了,这也是很多常见Web操作前的验证,还有对异常的处理,在MVC的基类,可以一并进行记录(这个非常不错),于是我们先来设计一个验证用户身份是否登陆的基类BaseController//////所有需要进行登
3、录控制的控制器基类///publicclassBaseController:Controller{//////当前登录的用户属性///-页脚---publicUserInfoCurrentUserInfo{get;set;}//////重新基类在Action执行之前的事情//////重写方法的参数protectedoverridevoidOnActionExecuting(ActionExecutingContextfilter
4、Context){base.OnActionExecuting(filterContext);//得到用户登录的信息CurrentUserInfo=Session["UserInfo"]asUserInfo;http://wangming.78name.com//判断用户是否为空if(CurrentUserInfo==null){Response.Redirect("/Login/Index");}}protectedoverridevoidOnException(ExceptionContextfilterContext){base.OnException(filterContext);/
5、/错误记录-页脚---WHC.Framework.Commons.LogTextHelper.Error(filterContext.Exception);//当自定义显示错误mode=On,显示友好错误页面if(filterContext.HttpContext.IsCustomErrorEnabled){filterContext.ExceptionHandled=true;this.View("Error").ExecuteResult(this.ControllerContext);}}........................}有了这个基类,我们在主页的Home控制类,就可以
6、使用用户信息对象了进行操作了,而且必须要求客户登陆了。publicclassHomeController:BaseController{publicActionResultIndex(){if(CurrentUserInfo!=null){ViewBag.FullName=CurrentUserInfo.FullName;ViewBag.Name=CurrentUserInfo.Name;}returnView();-页脚---}................} 2、数据访问业务基类控制器的设计我在我的Winform开发框架里面,对很多基类都使用泛型进行设计,这样可以传递相应的数据类型到基
7、类里面进行处理,如下面的BLL层的业务对象定义代码如下所示。namespaceWHC.Security.BLL{//////角色信息业务管理类///publicclassRole:BaseBLL{....................//////业务基类对象///-页脚---///
此文档下载收益归作者所有