2009-08-24 3 views

답변

8

나는 이것을 할 수있는 기본 방법이 없다고 생각합니다. 간단한 사이트에서 가장 쉬운 방법은 컨트롤러 수준에서 필터를 적용하는 것입니다. 이것은 꽤 흔한 일이며 일반적으로 모든 컨트롤러에 적용하려는 경우에 대비하여 기본 컨트롤러 클래스를 갖는 것이 좋습니다. 예컨대 : 당신이 응용 프로그램을 다양한 액션 필터를 달성 할 수있는 방법을 보여

[MyActionFilter] 
public class MyBaseController : Controller 
{ 
    ... 
} 

public class HomeController : MyBaseController 
{ 
    ... 
} 
말했다되고 그건

, here is a blog post. 소량의 작업처럼 보이지만 아마도이 기술을 사용할 수 있습니다.

2
  1. 전체 컨트롤러 클래스에 적용하여 컨트롤러의 모든 동작에 영향을 줄 수 있습니다.
  2. 기본 컨트롤러 클래스에 적용하고 모든 컨트롤러를 해당 컨트롤러에서 상속 받아 모든 컨트롤러에 적용 할 수 있습니다.
  3. 기본 컨트롤러 클래스를 사용하고 컨트롤러에서 직접 OnActionExecuting 메서드를 재정의 할 수 있습니다.이 메서드는 보드 전체의 모든 동작에 필터 코드를 적용하려는 경우 필터를 사용하는 것보다 적합합니다.
+0

2 개는 ASP.NET MVC에서 제공하는 Controller 클래스에 적용하는 것입니까? 그게 가능하니? 방법? – Pablo

+0

아니요, 그는 모든 컨트롤러가 asp.net mvc 컨트롤러를 확장하여 작성할 기본 컨트롤러 클래스에서 상속되어야 함을 의미합니다. 기본 컨트롤러 클래스에서 필터로 태그를 지정합니다. – womp

+0

무슨 말을 했지. –

0

여기서 NewlyCreatedActionFilter는 분명히 만들고있는 ActionFilter입니다. NewlyCreatedActionFilter 필터 모두에 적용되도록 :)이 컨트롤러 클래스의

[NewlyCreatedActionFilter] 
public class Basecontroller : Controller 
{ 
    ... 
} 

public class HomeController : BaseController 
{ 
    ... 
} 

public class AccountController : BaseController 
{ 
    ... 
} 

모두, BaseController에서 상속 것입니다.

6

이 질문은 오래된 질문이지만 ASP.NET MVC 3부터는 global filters을 사용할 수 있습니다.

관련 문제