在.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.cs文件的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());

   }

}

以上是 在.NET MVC C#中可以在哪些级别应用筛选器? 的全部内容, 来源链接: utcz.com/z/322514.html

回到顶部