The System.Web.Http one is for Web API; the System.Web.Mvc one is for previous MVC versions.
You can see from the source that the Web API version has several differences.
- It has
OnResultExecutingandOnResultExecutedhandlers (“Called by the ASP.NET MVC framework before/after the action result executes.”) - It can be executed asynchronously
- It does not let you specify an order of execution