asp.net - 扩展从 JQuery 调用 Web 服务时从 ASP.NET 抛出的异常

标签 asp.net jquery web-services json exception

我正在使用 JQuery 在 ASP.NET 开发环境中使用 JSON 和 WebServices 动态加载控件。在这个解决方案中,我有一个业务逻辑层,它有一个内置的验证机制(即验证类似于 CSLA 的属性和业务规则)

当请求使用 JQuery 和 ASP.NET WebService 动态加载新控件时,我想根据业务逻辑验证机制(即服务器端验证)验证当前控件的输入,并通知用户(如果有)有什么问题吗?

我设法实现了这一点,但是,当 Web 服务中的验证失败时,我想抛出一个包含验证字段 ID 和相关错误消息的客户异常。

在 JQuery 中,我测试了此特定的 ExceptionType,并希望将错误消息动态应用到异常类型属性中列出的控件。这就是我的问题所在。即使我使用自定义属性创建了自定义异常,从 WebService 以 JSON 格式传递到 JQuery 的异常仍然是标准异常,没有列出任何其他属性。我可以简单地在异常的消息属性中创建一个 JSON 格式的值字符串,但最终更喜欢更优雅的东西。有谁知道如何在这种情况下重写 ASP.NET 创建的序列化异常...

提前谢谢您...

G

最佳答案

几天前我遇到了非常相似的事情 - 基本上没有办法让 ASP.NET 生成自定义异常。这是by design ,因为返回特定类型的异常将

[...] expose implementation details/bugs to the clients. We could do something with special exception type that we let pass through, but its too late for this release [...]

You could always return different HTTP status codes ,并让浏览器将它们作为自定义异常处理 - 例如, 500 错误意味着一件事, 401 意味着另一件事,等等。我认为最好的解决方案是让你的方法返回一个带有异常堆栈的字符串 - 不优雅,但至少通过这种方式,客户端可以获得所有异常详细信息。

戴夫·沃德 (Dave Ward) 还提供有关 ASP.NET AJAX service errors 的信息。

关于asp.net - 扩展从 JQuery 调用 Web 服务时从 ASP.NET 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858953/

相关文章:

c# - 使用 ASP.Net 群发邮件

java - 一个 Rest API 调用另一个 Rest API

asp.net - ASP MVC TextReader

asp.net - jQuery Ajax 与 UpdatePanel 相比有何优点

c# - TFS - 跟踪文件何时被删除

vb.net - 类型 'String' 的错误值无法转换为 'secure.echosign.com.ArrayOfString'

java - 对于具有多个参数的单操作 Java 程序来说,理想的 Web 服务协议(protocol)是什么?

javascript - dropdown.js 中的复杂事件处理

javascript - 需要 jQuery 帮助

jquery - 如何将 Color box jQuery 插件用于直接 <img> 元素?