2009-05-19 27 views
26

Giả sử tôi có một phương thức trong bộ điều khiển được gọi thông qua cuộc gọi jQuery AJAX. Ví dụ. Tôi muốn xóa người dùng. Khi mọi thứ ổn, tôi trả lại Nội dung mới ('ok') và thoát khỏi phương thức.Làm thế nào nên asp.net (mvc) máy chủ trở lại lỗi để jquery ajax gọi để được đánh bắt trong lỗi gọi lại?

Tôi nên làm gì khi xảy ra lỗi? Tôi muốn chỉ ra nó bằng một mã trạng thái thích hợp, để lỗi gọi lại của tôi sẽ được gọi là gọi. Tại sao mã trạng thái? Đọc tại đây: How do you trigger the "error" callback in a jQuery AJAX call using ASP.NET MVC?

Tuy nhiên, cách tiếp cận này không hoạt động vì IIS7 trả về thông báo lỗi tùy chỉnh của tôi.

Bên cạnh đó có hai sản lượng đánh bắt khác:

  1. Nó có làm việc với IIS6 cũng
  2. IE8 không trả lại 'Bad yêu cầu' chuỗi. Lỗi bên trong gọi lại thuộc tính request.responseTest là null.

Lỗi gọi lại có thể trông như thế này: lỗi: function (theo yêu cầu) {alert (request.responseText);}

Trả lời

30

Thiết lập Response.StatusCode là điều đúng để làm. Để khắc phục sự cố xử lý lỗi "hữu ích" của IIS, hãy đặt thuộc tính HttpResponse.TrySkipIisCustomErrors. Bạn có thể đọc thêm về điều này here.

+0

HttpResponse.TrySkipIisCustomErrors không hoạt động với IIS6 – stej

+0

Hành vi IIS 7 bạn đang thấy là duy nhất đối với IIS 7 và phải được giải quyết cụ thể. Đọc các liên kết trong câu trả lời của tôi. –

+0

Có lẽ tôi không hiểu. Các liên kết được cung cấp chỉ là về IIS 7, nhưng tôi cần một giải pháp cho IIS 6 là tốt (như được chỉ ra trong (1)) – stej

Các vấn đề liên quan