40
Tôi đang kế thừa những HandleErrorAttribute
trong ứng dụng MVC của tôi để tôi có thể ghi lại các lỗi:ASP.net MVC - Tuỳ chỉnh HandleError Lọc - Xác định Xem dựa trên Loại ngoại lệ
public class HandleAndLogErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
if(filterContext.Exception != null)
{
// log here
}
}
}
tôi thêm này như một bộ lọc toàn cầu :
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleAndLogErrorAttribute());
}
Có thể chỉ định chế độ xem tùy chỉnh cho các loại ngoại lệ cụ thể không? Ví dụ:
if(filterContext.Exception is DivideByZeroException)
{
// how do i specify that the view should be DivideByZero?
}
Mã trạng thái HTTP nào thực hiện việc xử lý này? Tôi đã ấn tượng rằng 404 sẽ không bao giờ bị Bộ lọc Lỗi bắt gặp và bạn cần sử dụng để bẫy chúng. –
Dismissile
tất cả được tạo ra thông qua HttpException. – jgauffin
Giải pháp hay - tôi đặc biệt thích giải pháp đó để giữ lại thông tin về Bộ điều khiển và Hành động vi phạm. Tx! – Jaans