MVC的基类

设计一个验证用户身份是否登陆的基类BaseController

/// <summary>
    /// 所有需要进行登录控制的控制器基类    /// </summary>
    public class BaseController : Controller 
    {        /// <summary>
        /// 当前登录的用户属性        /// </summary>
        public UserInfo CurrentUserInfo { get; set; }        /// <summary>
        /// 重新基类在Action执行之前的事情        /// </summary>
        /// <param name="filterContext">重写方法的参数</param>
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {            base.OnActionExecuting(filterContext);            //得到用户登录的信息
            CurrentUserInfo = Session["UserInfo"] as UserInfo;            //判断用户是否为空
            if (CurrentUserInfo == null)
            {
                Response.Redirect("/Login/Index");
            }
        }        protected override void OnException(ExceptionContext filterContext)
        {            base.OnException(filterContext);            //错误记录            WHC.Framework.Commons.LogTextHelper.Error(filterContext.Exception);            // 当自定义显示错误 mode = On,显示友好错误页面
            if (filterContext.HttpContext.IsCustomErrorEnabled)
            {
                filterContext.ExceptionHandled = true;                this.View("Error").ExecuteResult(this.ControllerContext);
            }
        }
........................
    }

有了这个基类,我们在主页的Home控制类,就可以使用用户信息对象了进行操作了,而且必须要求客户登陆了

public class HomeController : BaseController
    {        public ActionResult Index()
        {            if (CurrentUserInfo != null)
            {
                ViewBag.FullName = CurrentUserInfo.FullName;
                ViewBag.Name = CurrentUserInfo.Name;
            }            return View();
        }
................
    }

时间: 2024-09-29 23:35:51

MVC的基类的相关文章

通用权限管理系统基类中数据库的连接

public class BaseController : Controller { /// <summary> /// 用户中心Dbhelper /// </summary> public IDbHelper DbHelperUserCenter = GetDbConnection(BaseSystemInfo.UserCenterDbType, BaseSystemInfo.UserCenterDbConnection, ConfigHelper.GetConfigBool(&

asp.net mvc webform和razor的page基类区别

接触过asp.net mvc的都知道,在传统的webform的模式下,page页面的基类是这样声明的: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage" %> 如果是partial view的话,则是这样声明的: <%@ Control Language="C#" Inherits=&q

ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承

在ASP.NET MVC项目开发,还是需要创建一些Web Page来实现一些功能,如呈现报表等... 但是一旦项目的.ASPX网页太多了,其中的程序代码也会有代码冗余,出现这些情况,我们得需要对这些代码进行重构. 比如,项目中需要呈现很多报表,就会创建许多.aspx网页: 所有呈现报表的.aspx.cx代码都一样,唯独高亮的部分有区别. 按照面向对象编程,可以把这些代码提升去父类中去. 把不相同的地方,改为方法的参数即可. 接下来,我们需要对.aspx.cs实现对基类的继承> 但不管怎样,当我们

MVC中Spring.net 对基类控制器无效 过滤器控制器无效

比如现在我又一个BaseController作为基类控制器,用于过滤权限.登录判断等作用,其它控制由原本的继承Controller,改为继承BaseController.然后BaseController重写Controller中方法OnActionExecuting 当我们此时再访问 User控制器下的某个Action,那么问题就来了,服务器会先执行BaseController中的OnActionExecuting方法,而此时,iu并没有由spring.net创建!!依旧为null 经过几次测试

基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思路和特点,对Controller进行了封装.使得控制器能够获得很好的继承关系,并能以更少的代码,更高效的开发效率,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了BusinessController<B, T>类里面,

基于MVC4+EasyUI的Web开发框架形成之旅(6)--基类控制器CRUD的操作

在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思路和特点,对Controller进行了封装.使得控制器能够获得很好的继承关系,并能以更少的代码,更高效的开发效率,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了BusinessController<B, T>类里面,

Farseer.net轻量级开源框架 中级篇:BasePage、BaseController、BaseHandler、BaseMasterPage、BaseControls基类使用

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 中级篇: UrlRewriter 地址重写 下一篇:Farseer.net轻量级开源框架 中级篇: 常用的扩展方法 BasePage基类:  在Asp.Net中我们建立的aspx页面都是继承在:System.Web.UI.Page.在使用Farseer后,需要继承到:FS.Core.Page.BasePage中. BaseController基类: 在Asp.Net中我们建立的mvc控制器

ASP.NET MVC 路由系统类

RouteData public class RouteData { private RouteValueDictionary _dataTokens; private IRouteHandler _routeHandler; private RouteValueDictionary _values; public RouteData() { this._values = new RouteValueDictionary(); this._dataTokens = new RouteValueD

ThinkPHP 3.2 自定义基类 Model

ThinkPHP 提供了一个 Model 类,供其他的 Model 进行继承.Model 类中是 MVC 中的模型类,它是调用 持久层 的上层类.感觉这么描述问题很多,但是有什么办法呢?但是,这个 Model 有时无法满足我们的一些需求,因此我们需要自定义一个 Model 类出来,不过自定义的 Model 同样要继承 TP 提供的 Model 类,而把我们自定义的 Model 类作为我们项目中的 Model 基类.我怎么感觉我在说绕口令,等等...我有点晕. 无聊的需求 在使用 Java 的开源