모든 컨트롤러에서 내 응용 프로그램에있는 모든 동작에 ASP.NET MVC에 ActionFilter을 적용하고 싶습니다.모든 작업에서 ASP.NET-MVC의 ActionFilter를 적용 할 수 있습니까?
모든 단일 ActionResult 메소드에 적용하지 않고이를 수행 할 수있는 방법이 있습니까?
모든 컨트롤러에서 내 응용 프로그램에있는 모든 동작에 ASP.NET MVC에 ActionFilter을 적용하고 싶습니다.모든 작업에서 ASP.NET-MVC의 ActionFilter를 적용 할 수 있습니까?
모든 단일 ActionResult 메소드에 적용하지 않고이를 수행 할 수있는 방법이 있습니까?
네,이 작업을 수행 할 수 있지만 사용하지 않은 방식입니다. 다음 내가 않았다
public class SetCultureAttribute : FilterAttribute, IActionFilter
{
#region IActionFilter implementation
public void OnActionExecuted(ActionExecutedContext filterContext)
{
//logic goes here
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
//or logic goes here
}
#endregion IActionFilter implementation
}
: 새로운 액션 필터 속성 여기는 액션 필터 속성의 샘플입니다
[SetCulture]
public class ControllerBase : Controller
{
...
}
한 컨트롤러 클래스는 SetCulture 액션 필터가 항상 실행됩니다 다음 ControllerBase에서 상속으로이 방법을 사용 :
다음은이 속성을 가진 기본 컨트롤러 클래스의 샘플입니다. 좀 더 자세히 알고 싶으면이 전체 샘플과 게시물을 on my blog에 보내주십시오.
희망 하시겠습니까?
모든 작업에 적용 할 필요는 없습니다. 모든 컨트롤러에 적용 할 수 있습니다 (예 : 메서드가 아닌 클래스에 특성을 넣음).
또는 언급 한 것처럼 기본 컨트롤러 클래스에 배치 한 다음 해당 컨트롤러에서 확장 할 수 있습니다. 상황이 나아 어떻게
... 나중에 2 년 우리는
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorElmahAttribute());
}
basallo - 어디에서 전화할까요? 아니면 넣어? –
global.asax에서 –
이는 ActionResults에 영향을 미칩니 까 있나요? 또는 다른 결과 유형에도 영향을 줍니까? JsonResult, FileResult 등? –