zoukankan      html  css  js  c++  java
  • .NetMVC过滤器

      APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理。这时候就用到了过滤器。

      MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常)。

    如下表,

    过滤器类型 接口 描述
    Authorization IAuthorizationFilter

    此类型(或过滤器)用于限制进入控制器或

    控制器的某个行为方法

    Exception IExceptionFilter

    用于指定一个行为,这个被指定的行为处理

    某个行为方法或某个控制器里面抛出的异常

    Action

    IActionFilter

    用于进入行为之前或之后的处理

    Result

    IResultFilter 用于返回结果的之前或之后的处理

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace WebMVC.Controllers
    {
        public class HomeController : Controller
        {        
           public ActionResult Index()
            {        
                Response.Write("这是动作方法!");
                return View();
            }
    
            [WebMVC.Filter.MyFilter]
            public ActionResult helo()
            {
                SqlConnection conn = new SqlConnection("错误");
                return View();
            }
        }
    }

    自定义一个过滤器

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.IO;
    namespace WebMVC.Filter { public class MyFilter:FilterAttribute,IExceptionFilter { public void OnException(ExceptionContext filterContext) { //定义日志文件路径 string filePath = filterContext.HttpContext.Server.MapPath(@"Filterlog.txt"); //写入日志信息 using (StreamWriter sw = File.AppendText(filePath)) { sw.WriteLine("时间:{0}", DateTime.Now.ToString()); sw.WriteLine("控制器:{0}", filterContext.RouteData.Values["Controller"]); sw.WriteLine("动作方法:{0}", filterContext.RouteData.Values["Action"]); sw.WriteLine("异常信息:{0}", filterContext.Exception.Message); } } } }
  • 相关阅读:
    sphinx测试数据生成
    sphinx是支持结果聚类的——WHERE、ORDER BY和GROUP BY
    sphinx是支持结果聚类的
    sphinx 针对tedfield搜索
    启明星辰泰合发布新一代日志分析系统
    php下载远程图片方法总结(curl手动解析header)curl跳转问题解决
    php抓取ajax页面返回图片。
    PHP用CURL或fsockopen伪造IP和来路(referer)
    windows无效字符名导致的错误及解决办法
    php 原生或curl获取 http headers
  • 原文地址:https://www.cnblogs.com/tianranhui/p/10800589.html
Copyright © 2011-2022 走看看