Có, bạn có thể làm điều này nhưng nó không phải là cách nó hoạt động ra khỏi hộp. Tôi đã điều sau đây:
- Tạo một lớp điều khiển cơ bản và có tất cả các bộ điều khiển của bạn kế thừa từ nó
- Tạo một thuộc tính lọc hành động và có nó kế thừa từ FilterAttribute và IActionFilter
- Trang trí lớp điều khiển cơ sở của bạn với mới lọc hành động thuộc tính của bạn
Dưới đây là một ví dụ về các thuộc tính lọc hành động:
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
}
Dưới đây là một mẫu của các lớp điều khiển cơ bản với thuộc tính này:
[SetCulture]
public class ControllerBase : Controller
{
...
}
Sử dụng phương pháp này càng lâu càng lớp điều khiển của bạn được thừa hưởng từ ControllerBase sau đó lọc hành động SetCulture sẽ luôn luôn được thực thi. Tôi có một mẫu đầy đủ và đăng trên on my blog nếu bạn muốn biết thêm chi tiết.
Hy vọng điều đó sẽ hữu ích!
Nguồn
2009-03-16 06:53:55
Điều này chỉ ảnh hưởng đến ActionResults? Hay nó cũng ảnh hưởng đến các loại kết quả khác? JsonResult, FileResult, v.v ...? –