Nếu lỗi tải trang bình thường, tôi có thể báo cáo chi tiết ngoại lệ cho người dùng qua chế độ xem Error
và kiểu HandleErrorInfo
.Lỗi báo cáo từ Ajax đã gọi các phương thức PartialView trong MVC
Nếu một ajax
gọi mong đợi một Json
lỗi kết quả, tôi có thể xử lý một cách rõ ràng các lỗi và thông qua chi tiết cho khách hàng:
public JsonResult Whatever()
{
try
{
DoSomething();
return Json(new { status = "OK" });
}
catch (Exception e)
{
return Json(new { status = "Error", message = e.Message });
}
}
Vì vậy, vấn đề của tôi, tôi không thể nhìn thấy bất cứ cách nào để báo cáo chi tiết lỗi từ một cuộc gọi Ajax đến một hành động trả lại một phần xem.
$.ajax({
url: 'whatever/trevor',
error: function (jqXHR, status, error) {
alert('An error occured: ' + error);
},
success: function (html) {
$container.html(html);
}
});
Điều này sẽ chỉ báo cáo mã lỗi Http (ví dụ: Lỗi máy chủ nội bộ) không hữu ích cho khách hàng. Có một số mẹo thông minh để vượt qua một kết quả thành công (html) thành công hoặc thông báo lỗi không?
Đánh giá rõ ràng html từ ViewResult
và trả lại nó như một phần của đối tượng Json
cùng với trạng thái có vẻ quá có mùi. Có một mô hình được thiết lập để xử lý kịch bản này không?
Làm cho kiến thức của bạn về MVC làm tôi ngạc nhiên trở lại. Tôi đã không hoàn toàn hiểu một vài điểm ở đây, nhưng tôi đã tìm ra rằng tôi có thể đạt được một cái gì đó tương tự một chút đơn giản chỉ với một bộ lọc ajax đăng ký trong bộ lọc toàn cầu. Dường như nó hoạt động ổn. Cảm ơn bạn. – fearofawhackplanet
Chỉ cần một lưu ý, nếu bạn đang sử dụng mã trên để bẫy 404 và hiển thị một trang tùy chỉnh, bạn có thể muốn thêm một Response.TrySkipIisCustomErrors = true (.net 3.5 trở đi chỉ tôi tin) –
Làm việc như một nét duyên dáng, aweseome – Dilip