zoukankan      html  css  js  c++  java
  • MVC

     需求:

               当活动结束后,我们往往需要将该活动跳转到活动下线的落地页,用以提示用户,而非完全无法访问的状态。


    常规处理方式:

               对每一个public方法,屏蔽其业务逻辑。这么做的当然可以达到目的,不过过于繁琐,且很容易漏掉部分public方法。


    过滤器方式:

              过滤器可以针对整个controller及其下的所有action,避免遗漏而导致活动后期数据异常等问题。


    具体实现:

    //-----------------------------------------------------------------------
    // <copyright file="OffAttribute.cs" company="SCM">
    //   权限控制之1:(属性控制)
    //  @2014 by chaoming.
    // </copyright>
    //-----------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Common;
    
    namespace SCM.Filters
    {
        /// <summary>
        /// 登录验证权限控制过滤器 Created by chaoming,2014-3-31 21:32:22
        /// </summary>
        public class OfflineAttribute : ActionFilterAttribute
        {
            /// <summary>
            /// 活动结束后的跳转地址
            /// </summary>
            string redirecturl;
    
            /// <summary>
            /// 构造器
            /// </summary>
            /// <param name="redirect">跳转地址</param>
            public OfflineAttribute(string redirect)
            {
                this.redirecturl = redirect;
            }
    
            /// <summary>
            /// 在Action执行前验证,并跳转 Created by chaoming,2014-3-31 21:36:06
            /// </summary>
            /// <param name="filterContext">ActionExcutingContext</param>
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                filterContext.Result = new RedirectResult(this.redirecturl);
            }
        }
    }

    调用也是极其的方便:

        /// <summary>
        /// 十一国庆活动
        /// </summary>
        [Offline(redirect: "http://www.baidu.com")]
        public class NationalDay16Controller : Controller
        {
         
         }

    如此,在活动结束的时候,在controller上加上 Offline 过滤器,即可将所有该活动的请求,跳转到结束提示落地页(此处填写的是百度官网)

  • 相关阅读:
    javascript事件委托和jQuery事件绑定on、off 和one
    转:程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
    网游加速器原理、技术与实现
    自动化测试等级
    游戏测试工具
    JMeter
    Python高级编程
    测试提高项目的方法
    python mysqldb
    Python中的操作符重载
  • 原文地址:https://www.cnblogs.com/shenchaoming/p/6121637.html
Copyright © 2011-2022 走看看