Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

ASP .Net MVC C#에서 필터를 적용할 수 있는 수준은 무엇입니까?

<시간/>

ASP .Net MVC 응용 프로그램 필터는 세 가지 수준으로 적용할 수 있습니다.

  • 실행 방법 수준
  • 컨트롤러 수준
  • 글로벌 수준

실행 방법 수준

작업 방법 수준에서 적용된 필터는 특히 해당 작업 방법에 대해서만 작동합니다.

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      [Authorize] //Action Method Level
      public string Index(){
         return "Index Invoked";
      }
   }
}

컨트롤러 레벨

컨트롤러 수준 필터는 모든 작업 메서드에 적용됩니다. 다음 필터는 HomeController의 모든 작업 메서드에 적용할 수 있지만 다른 컨트롤러에는 적용되지 않습니다.

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   [Authorize] //Controller Level
   public class HomeController : Controller{
      public string Index1(){
         return "Index1 Invoked";
      }
      public string Index2(){
         return "Index2 Invoked";
      }
   }
}

글로벌 수준

전역 수준 필터는 기본 FilterConfig.RegisterGlobalFilters() 메서드를 사용하여 global.asax.csfile의 Application_Start 이벤트에 제공됩니다. 전역 필터는 응용 프로그램의 모든 컨트롤러 및 작업 메서드에 적용됩니다.

public class MvcApplication : System.Web.HttpApplication{
   protected void Application_Start(){
      AreaRegistration.RegisterAllAreas();
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
      RouteConfig.RegisterRoutes(RouteTable.Routes);
      BundleConfig.RegisterBundles(BundleTable.Bundles);
   }
}
public class FilterConfig{
   public static void RegisterGlobalFilters(GlobalFilterCollection filters){
      filters.Add(new HandleErrorAttribute());
      filters.Add(new AuthorizeAttribute());
   }
}