ConfigAction.cs 820 B

12345678910111213141516171819202122232425262728293031
  1. using Microsoft.AspNetCore.Mvc.Filters;
  2. using Microsoft.Extensions.Configuration;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace LotteryWebApp.Extensions
  8. {
  9. public class ConfigAction : IAsyncActionFilter
  10. {
  11. private MyConfig _options;
  12. public ConfigAction(IConfiguration configuration)
  13. {
  14. _options = new MyConfig();
  15. configuration.Bind(_options);
  16. }
  17. public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
  18. {
  19. ((Microsoft.AspNetCore.Mvc.Controller)context.Controller).ViewBag.MyConfig = _options;
  20. await next();
  21. }
  22. }
  23. public class MyConfig
  24. {
  25. public string MyValue { get; set; }
  26. }
  27. }