我正在使用JQuery在使用JSON和WebServices的ASP.NET开发环境中动态加载控件。在这个解决方案中,我有一个业务逻辑层,它有一个内置的验证机制(即验证类似于CSLA的属性和业务规则)
当请求使用JQuery和ASP.NET WebService动态加载新控件时,我想根据业务逻辑验证机制(即服务器端验证)验证当前控件的输入,并通知用户是否存在有任何问题。
我设法实现了这一点,但是,当Web服务中的验证失败时,我想抛出一个包含验证字段ID和相关错误消息的客户异常。
在JQuery中,我测试了这个特定的ExceptionType,并希望将错误消息动态应用于异常类型属性中列出的控件。这就是我的问题所在。虽然我使用自定义属性创建了一个自定义异常,但是从WebService以JSON格式传递给JQuery的异常仍然是一个标准的例外,没有列出任何其他属性。我可以在异常的message属性中创建一个JSON格式的值字符串,但最终会更喜欢更优雅的东西。有谁知道如何覆盖ASP.NET为此类情况创建的序列化异常...
提前谢谢你......
G
答案 0 :(得分:3)
几天前我碰到了类似的东西 - 基本上没有办法让ASP.NET生成自定义异常。这是by design,因为返回特定类型的异常
[...]揭露实施 客户的详细信息/错误。我们可以 做一些有特殊例外的事情 我们允许通过的类型,但它 这个版本太晚了[...]
You could always return different HTTP status codes,并让浏览器将它们作为自定义异常处理 - 例如,500错误意味着一件事,401其他东西等等。我认为最好的解决方案是让你的方法返回一个字符串使用异常堆栈 - 不优雅,但至少这种方式客户端具有所有异常细节。
Dave Ward也有关于ASP.NET AJAX service errors的信息。