检测ApiController上的请求结束

时间:2013-03-29 07:28:08

标签: asp.net-mvc-4 controller httpwebrequest asp.net-web-api detection

我正在使用MVC4开发一个Web应用程序,并发现这个方法非常有用:

class Controller
{
    protected virtual void OnActionExecuted(ActionExecutedContext filterContext);
}

这允许我调用UnitOfWork.SubmitChanges();Transaction.Rollback();或其他需要在处理请求并且对数据库的更改待处理之后才需要调用的好东西。

当我开始使用ApiController时,我没有找到有用的方法。

如何在我的web-api控制器上检测到http请求的结束?

1 个答案:

答案 0 :(得分:2)

你可以为ApiController制作一个ActionFilterAttribute

 public class JsonpAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            //Logic
        }
    }

在你的控制器中:

[Jsonp]
public class testcontroller : ApiController

请注意,Web Api使用System.Web.Http.Filters,而MVC4使用System.Web.Mvc