MVC webapi,Action的分别拦截器

时间:2023-03-10 01:56:23
MVC webapi,Action的分别拦截器

继承Controller,ApiController的拦截继承的接口不一样

webapi的拦截器:(继承System.Web.Http)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using System.Configuration; namespace Rongzi.Mi.Mvc
{ public class IosApproveFilterAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
private readonly bool IosApprove = Convert.ToBoolean(ConfigurationManager.AppSettings["IOSApprove"] == null ? "" : ConfigurationManager.AppSettings["IOSApprove"]);
public override void OnActionExecuting(HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
} public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (IosApprove)
{
actionExecutedContext.ActionContext.Response.Headers.Add("IOSApprove", "true");
}
base.OnActionExecuted(actionExecutedContext);
}
}
}

Controller的拦截:(继承System.Web.Mvc)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Controllers;
using System.Configuration;
using System.Web.Mvc; namespace Rongzi.Mi.Mvc
{ public class IosApproveFilterAttribute : System.Web.Mvc.ActionFilterAttribute
{
private readonly bool IosApprove = ConfigurationManager.AppSettings["IOSApprove"] == "" ? true : false;
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
base.OnActionExecuting(actionContext); }
public override void OnActionExecuted(ActionExecutedContext actionExecutedContext)
{
if (IosApprove)
{
actionExecutedContext.HttpContext.Response.Headers.Add("IOSApprove", "true");
}
base.OnActionExecuted(actionExecutedContext);
}
}
}

可以发现他们的继承抽象类都不一样,虽然名称一样,但是是不同的命名空间。