diff --git a/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs b/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs
index 6a1102550a..0b4c72e94f 100644
--- a/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs
+++ b/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+using System;
using Microsoft.AspNet.Diagnostics;
namespace Microsoft.AspNet.Mvc
@@ -8,10 +9,16 @@ namespace Microsoft.AspNet.Mvc
///
/// Filter to prevent StatusCodePages middleware to handle responses.
///
- public class SkipStatusCodePagesAttribute : ResultFilterAttribute
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
+ public class SkipStatusCodePagesAttribute : Attribute, IResourceFilter
{
///
- public override void OnResultExecuted(ResultExecutedContext context)
+ public void OnResourceExecuted([NotNull]ResourceExecutedContext context)
+ {
+ }
+
+ ///
+ public void OnResourceExecuting([NotNull]ResourceExecutingContext context)
{
var statusCodeFeature = context.HttpContext.GetFeature();
if (statusCodeFeature != null)
@@ -19,8 +26,6 @@ namespace Microsoft.AspNet.Mvc
// Turn off the StatusCodePages feature.
statusCodeFeature.Enabled = false;
}
-
- base.OnResultExecuted(context);
}
}
}
\ No newline at end of file
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs
index 5266a1eac8..542888c881 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs
@@ -15,12 +15,12 @@ namespace Microsoft.AspNet.Mvc.Core.Test
{
// Arrange
var skipStatusCodeAttribute = new SkipStatusCodePagesAttribute();
- var resultExecutingContext = CreateResultExecutingContext(new IFilter[] { skipStatusCodeAttribute });
+ var resourceExecutingContext = CreateResourceExecutingContext(new IFilter[] { skipStatusCodeAttribute });
var statusCodePagesFeature = new TestStatusCodeFeature();
- resultExecutingContext.HttpContext.SetFeature(statusCodePagesFeature);
+ resourceExecutingContext.HttpContext.SetFeature(statusCodePagesFeature);
// Act
- skipStatusCodeAttribute.OnResultExecuted(CreateResultExecutedContext(resultExecutingContext));
+ skipStatusCodeAttribute.OnResourceExecuting(resourceExecutingContext);
// Assert
Assert.False(statusCodePagesFeature.Enabled);
@@ -31,24 +31,17 @@ namespace Microsoft.AspNet.Mvc.Core.Test
{
// Arrange
var skipStatusCodeAttribute = new SkipStatusCodePagesAttribute();
- var resultExecutingContext = CreateResultExecutingContext(new IFilter[] { skipStatusCodeAttribute });
+ var resourceExecutingContext = CreateResourceExecutingContext(new IFilter[] { skipStatusCodeAttribute });
// Act
- skipStatusCodeAttribute.OnResultExecuted(CreateResultExecutedContext(resultExecutingContext));
+ skipStatusCodeAttribute.OnResourceExecuting(resourceExecutingContext);
}
- private static ResultExecutedContext CreateResultExecutedContext(ResultExecutingContext context)
+ private static ResourceExecutingContext CreateResourceExecutingContext(IFilter[] filters)
{
- return new ResultExecutedContext(context, context.Filters, context.Result, context.Controller);
- }
-
- private static ResultExecutingContext CreateResultExecutingContext(IFilter[] filters)
- {
- return new ResultExecutingContext(
+ return new ResourceExecutingContext(
CreateActionContext(),
- filters,
- new ObjectResult("Some Value"),
- controller: new object());
+ filters);
}
private static ActionContext CreateActionContext()