diff --git a/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs b/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
index ff5444c89ea1e322460166de5fe902f7ded5e8fa..800715464fe6eea36e6a788bdfafc05a4a352753 100644
--- a/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
+++ b/src/Mvc/Mvc.Abstractions/src/Abstractions/ActionDescriptor.cs
@@ -76,6 +76,6 @@ namespace Microsoft.AspNetCore.Mvc.Abstractions
         /// </summary>
         public IDictionary<object, object> Properties { get; set; } = default!;
 
-        internal IFilterMetadata[]? CachedResuableFilters { get; set; }
+        internal IFilterMetadata[]? CachedReusableFilters { get; set; }
     }
 }
diff --git a/src/Mvc/Mvc.Core/src/Filters/FilterFactory.cs b/src/Mvc/Mvc.Core/src/Filters/FilterFactory.cs
index adfe79006b715bbc29e739b3abec35728a9b394c..198c76a240da2e88f0c0cb8a3c852281836a3290 100644
--- a/src/Mvc/Mvc.Core/src/Filters/FilterFactory.cs
+++ b/src/Mvc/Mvc.Core/src/Filters/FilterFactory.cs
@@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters
             {
                 // If we know we can safely cache all filters and only the default filter provider is registered, we can
                 // probably re-use filters between requests.
-                actionDescriptor.CachedResuableFilters = filters;
+                actionDescriptor.CachedReusableFilters = filters;
             }
 
             return new FilterFactoryResult(staticFilterItems, filters);
@@ -87,7 +87,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters
                 throw new ArgumentNullException(nameof(cachedFilterItems));
             }
 
-            if (actionContext.ActionDescriptor.CachedResuableFilters is { } cached)
+            if (actionContext.ActionDescriptor.CachedReusableFilters is { } cached)
             {
                 return cached;
             }