| File: SaveTempDataAttribute.cs | Web Access |
| Project: src\aspnetcore\src\Mvc\Mvc.ViewFeatures\src\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj (Microsoft.AspNetCore.Mvc.ViewFeatures) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable enable using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.ViewFeatures.Filters; using Microsoft.Extensions.DependencyInjection; namespace Microsoft.AspNetCore.Mvc.ViewFeatures; /// <summary> /// A filter that saves the <see cref="ITempDataDictionary"/> for a request. /// </summary> [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class SaveTempDataAttribute : Attribute, IFilterFactory, IOrderedFilter { /// <summary> /// Initialize a new instance of <see cref="SaveTempDataAttribute"/>. /// </summary> public SaveTempDataAttribute() { // Since SaveTempDataFilter registers for a response's OnStarting callback, we want this filter to run // as early as possible to get the opportunity to register the call back before any other result filter // starts writing to the response stream. Order = int.MinValue + 100; } /// <inheritdoc /> public int Order { get; set; } /// <inheritdoc /> public bool IsReusable => true; /// <inheritdoc /> public IFilterMetadata CreateInstance(IServiceProvider serviceProvider) { return serviceProvider.GetRequiredService<SaveTempDataFilter>(); } }