2009-05-13 26 views
5

Tôi đang sử dụng JQuery để tải các điều khiển động trong môi trường phát triển ASP.NET bằng cách sử dụng JSON và WebServices. Trong giải pháp này, tôi có một lớp logic nghiệp vụ có cơ chế xác thực được xây dựng (ví dụ: xác thực các thuộc tính và quy tắc kinh doanh tương tự như CSLA)Mở rộng ngoại lệ được ném từ ASP.NET khi gọi một Webservice từ JQuery

Khi yêu cầu một điều khiển mới được nạp động bằng cách sử dụng JQuery và ASP.NET WebService , Tôi muốn xác nhận tính hợp lệ của đầu vào từ điều khiển hiện tại đối với cơ chế xác thực logic nghiệp vụ (nghĩa là xác thực phía máy chủ) và thông báo cho người dùng nếu có bất kỳ vấn đề nào.

Tôi đã đạt được điều này, tuy nhiên, khi xác thực không thành công trong dịch vụ web, tôi muốn ném ngoại lệ của khách hàng chứa thông báo lỗi của trường xác thực và các thông báo lỗi liên quan.

Trong JQuery, tôi kiểm tra loại ExceptionType cụ thể này và muốn áp dụng các thông báo lỗi động cho các điều khiển được liệt kê trong thuộc tính loại ngoại lệ. Đây là nơi mà vấn đề của tôi xuất hiện. Mặc dù tôi đã tạo một ngoại lệ tùy chỉnh với các thuộc tính tùy chỉnh ngoại lệ được chuyển tới JQuery ở định dạng JSON từ WebService vẫn là một ngoại lệ chuẩn mà không có thuộc tính bổ sung nào được liệt kê. Tôi chỉ đơn giản có thể tạo một chuỗi định dạng JSON có giá trị trong thuộc tính tin nhắn của ngoại lệ nhưng cuối cùng sẽ thích thứ gì đó thanh lịch hơn một chút. Có ai biết làm thế nào bạn có thể ghi đè lên các ngoại lệ serialized tạo ra bởi ASP.NET cho các tình huống như thế này ...

Cảm ơn bạn trước ...

G

+0

Tôi rất muốn biết câu trả lời cho điều này. –

+3

sau đó bỏ phiếu cho câu hỏi: p – womp

Trả lời

3

tôi chạy vào một cái gì đó một rất giống nhau vài ngày trước - về cơ bản không có cách nào để làm cho ASP.NET tạo ra ngoại lệ tùy chỉnh. Đây là by design, kể từ khi trở về một loại hình cụ thể của trường hợp ngoại lệ sẽ

[...] tiếp xúc với thực hiện chi tiết/lỗi cho khách hàng. Chúng ta có thể làm điều gì đó với ngoại lệ đặc biệt loại mà chúng ta để cho đi qua, nhưng quá muộn cho phiên bản này [...]

You could always return different HTTP status codes, và có trình duyệt xử lý như trường hợp ngoại lệ tùy chỉnh - ví dụ, Tôi nghĩ giải pháp tốt nhất là làm cho phương thức của bạn trả về một chuỗi với ngăn xếp ngoại lệ - không thanh lịch, nhưng ít nhất theo cách này, khách hàng có tất cả các chi tiết ngoại lệ.

Dave Ward cũng có thông tin trên ASP.NET AJAX service errors.

+0

Cảm ơn Gabriel ... Điều đó thực sự giúp tôi ... G –

+0

FYI tất cả, có một khối 'bẩn thỉu' khi tôi đi đến liên kết Dave Ward. –

+0

Huh, thú vị - tôi cũng vậy. Đó là một người lười biếng. –

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