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,则这个方法就会被调用

  • 相关阅读:
    c#結合正則表達式驗證輸入的字符串
    [SQL]数据库设计说明书模板
    如何在网页中插入Flv视频文件
    JAVASCRIPT常用检验代码
    Javascript知识精华
    提高Remoting的DataSet传输的性能
    如何快速的在SharePoint里构建一个Blog站点
    可爱的 Python,可爱的.NET
    郁闷的Xml Serialization BUG
    初试Zope(1)
  • 原文地址:https://www.cnblogs.com/pangzhixing/p/6095341.html
Copyright © 2011-2022 走看看