Computer >> Máy Tính >  >> Lập trình >> C#

Các cấp độ mà bộ lọc có thể được áp dụng trong ASP .Net MVC C # là gì?

Trong một ứng dụng ASP .Net, các bộ lọc MVC có thể được áp dụng ở ba cấp độ.

  • Mức độ phương pháp hành động
  • Cấp độ kiểm soát viên
  • Cấp độ toàn cầu

Mức phương pháp hành động

Các bộ lọc được áp dụng ở cấp Phương thức hành động sẽ chỉ hoạt động đặc biệt cho phương thức tác động đó.

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

Cấp bộ điều khiển

Bộ lọc mức bộ điều khiển được áp dụng cho tất cả các phương pháp hành động. Khu vực bộ lọc sau có thể áp dụng cho tất cả các phương thức hành động của HomeController, nhưng không áp dụng cho các bộ điều khiển khác.

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";
      }
   }
}

Cấp độ toàn cầu

Bộ lọc mức toàn cục được cung cấp trong sự kiện Application_Start của global.asax.csfile bằng cách sử dụng phương thức FilterConfig.RegisterGlobalFilters () mặc định. Các bộ lọc chung sẽ được áp dụng cho tất cả các bộ điều khiển và phương thức hành động của một ứng dụng.

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());
   }
}