okinawa

IT勉強メモ

.net Core コントローラにフィルターを噛ます

・参考書籍

「プログラミング ASP.NET CORE」のP103 カスタムヘッダー

モデル↓

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Filters;

namespace TeamMember.Models
{
    public class FilterTest : ActionFilterAttribute
    {
        // アクションメソッド発動後にフィルター作動する時はExecuted
        public override void OnActionExecuted(ActionExecutedContext context)
     { 
            //セッションの取得
            context.HttpContext.Session.GetString("name");
            base.OnActionExecuted(context);
        }

        // アクションメソッド発動前にフィルター作動する時はExecuting
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            DateTime date = DateTime.Now;

            base.OnActionExecuting(context);
        }
    }
}

コントローラにカスタムヘッダーを付ける↓

    [FilterTest] //コントローラに付けると全てのアクションメソッドにフィルターかかる 
    public class CharactersController : Controller
    {
 
        [FilterTest] //アクションメソッドに付けるとここだけにフィルターかかる
        public IActionResult Index() {
            return View();
        }
    }