zoukankan      html  css  js  c++  java
  • MVC第二天

    一、过滤器filter

    注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用
    使用方式1:作为Controller或Action的特性
    使用方式2:在Global中注册为全局过滤器,应用于所有的Controller的Action
    参数类均继承自ControllerContext,主要包含属性请求上下文、路由数据、结果

    特性是在Action前加,或者在类之前加

    1)、身份验证过滤器(Authorization)

    在约束的Action执行前执行
    重写OnAuthorization方法
    如果不想使用默认的身份验证方式,需要将base.***删除
    如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);

    //如果保留如下代码,则会运行.net framework定义好的身份验证,如果希望自定义身份验证,则删除如下代码
    //base.OnAuthorization(filterContext);
    //如果希望跳转到另外一个页面,需要用Result,而不是用Response.Redirect(),第二种方法不会让服务器停止执行
    //filterContext.Result = new RedirectResult(UrlHelper.GenerateUrl("","Login","UserInfo",""));
    //获取路由数据:当前上下文匹配到路由规则后,得到的一个对象
    //filterContext.RouteData

    //获取上下文
    filterContext.HttpContext.Response.Write("123");

    [MyAuthorization]//:当前行为在执行前,会执行

    public ActionResult Index()
    {
    //throw new Exception("");
    Response.Write("行为执行中</br>");
    return View();
    }

    2)、异常处理过滤器(Exception)

    当发生异常时,用于进行自定义异步处理,如记录日志、跳转页面
    使用自定义异常处理,需要在web.config中为system.web添加<customErrors mode="On" />节点
    重写OnException方法,不要禁用base.***
    如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);

    3)、行为过滤器//[MyAction]

    在行为被执行前、后执行的过滤器
    重写方法OnActionExecuting(行为执行前)
    重写方法OnActionExecuted(行为执行后)

     4)、结果过滤器

    在结果被执行前、后执行的过滤器
    重写方法OnResultExecuting(结果执行前)
    重写方法OnActionExecuted(结果执行后)

    二、WebApi

    两种web服务
    SOAP风格:基于方法,产品是WebService
    REST风格:基于资源,产品是WebAPI
    可以返回json、xml类型的数据
    对于数据的增、删、改、查,提供相对的资源操作,按照请求的类型进行相应处理,主要包括Get(查)、Post(增)、Put(改)、Delete(删),这些都是http协议支持的请求方式
    请求方式:根据路由规则请求

    在APIController中定义crud的方法,名称可以自定义,如果对应相应的资源操作,可以使用特性约束
    主要的特性包括
    HttpGet
    HttpPost
    HttpPut
    HttpDelete

    // GET: api/UserInfo
    //使用Method=Get的方式请求url=api/userinfo,则这个方法就会被调用

  • 相关阅读:
    DataTableToJSON
    css hack
    把网络数据流转换成图片类
    递归(转)
    SQL 锁
    观察者
    yield
    开闭原则(转)
    迪米特法则(最少知道原则)(转)
    sql 游标
  • 原文地址:https://www.cnblogs.com/pangzhixing/p/6095341.html
Copyright © 2011-2022 走看看