Maison  >  Article  >  développement back-end  >  À quel niveau les filtres peuvent-ils être appliqués dans ASP .Net MVC C# ?

À quel niveau les filtres peuvent-ils être appliqués dans ASP .Net MVC C# ?

WBOY
WBOYavant
2023-09-04 13:49:021324parcourir

在 ASP .Net MVC C# 中可以应用过滤器的级别是什么?

Dans les applications ASP .Net MVC, les filtres peuvent être appliqués à trois niveaux.

  • Niveau de la méthode d'action
  • Niveau du contrôleur
  • Niveau global

Niveau de la méthode d'action

Les filtres appliqués au niveau de la méthode d'action ne s'appliquent qu'à ce niveau méthode d’action.

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

Niveau du contrôleur

Les filtres au niveau du contrôleur sont appliqués à toutes les méthodes d'action. Les filtres suivants sont S'applique à toutes les méthodes d'action de HomeController mais pas aux autres contrôleur.

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

Niveau global

Des filtres de niveau global sont fournis dans l'événement Application_Start de global.asax.cs Créez le fichier à l'aide de la méthode FilterConfig.RegisterGlobalFilters() par défaut. filtre global Sera appliqué à tous les contrôleurs et méthodes d’action de l’application.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer