码迷,mamicode.com
首页 > Windows程序 > 详细

C# mvc统一通道使用过滤器

时间:2016-11-12 11:28:27      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:lin   highlight   override   最大   one   exe   view   通道   ext   

问题描述

使用C#过滤器有一个最大的问题就是在过滤器转向后程序仍然会执行方法体

问题解决思路

使用统一通道执行方法 不直接进入控制器 通过反射调用

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc;

namespace WebApplication2.Controllers
{
    public class DefaultController : Controller
    {
        bool filter = true;
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
             filter = false;
             Type t = typeof(DefaultController);
             MethodInfo mf = t.GetMethod("Index");
             mf.Invoke(this,null);
          
        }
        // GET: Default
        public ActionResult Index()
        {
            //Response.Write("我就是我");
            //Response.Flush();
            return View();

        }
    }
}

  对于反射调用方法可使用缓存进行优化

C# mvc统一通道使用过滤器

标签:lin   highlight   override   最大   one   exe   view   通道   ext   

原文地址:http://www.cnblogs.com/ProDoctor/p/6056206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!