asp.net-mvc - 返回逻辑错误的最标准/正确的方法是什么?

标签 asp.net-mvc asp.net-mvc-3 error-handling

ASP.Net MVC 3,剑道 UI Web。

典型的例子——有一个数据库和一些表,用户正在编辑数据——添加新条目、删除、更新。

除了技术问题(网络连接中断)之外,可能还有几个逻辑问题——例如用户没有写任何东西的权限,或者数据被锁定,或者用户试图更新同时被删除的东西,等等在。

所以我想在这种情况下返回一个错误,所以我可以用 Kendo 处理它并显示,比如说一些警报对话框(JS alert)。

现在 - 这样做的最精心设计、最正确的方式是什么?我不是在寻找“哦,好吧,它只是有效”的方法。

正在 throw HttpException在这种情况下是个好主意(我有我的问题,因为它是 http 异常,我尝试传递的错误实际上与 http 无关)?

最佳答案

我将假设您正在使用 Kendo DataSource 对象,该对象存在于大多数自绑定(bind)模式下的小部件上(已定义传输部分并触发它自己的 CRUD 请求)。

网格的 CRUD 所绑定(bind)的操作应在其作为输入接收的模型上返回 IEnumerable.ToDataSourceResult。如果在您的处理过程中检测到错误,请通过您可以在操作中访问的 ModelState.AddModelError 方法将它们添加到 ModelState。 ToDataSourceResult 将自动检测 ModelState 对象中是否存在任何错误并将它们序列化到 JSON 响应(错误字段)中。然后,您甚至可以在客户端通过订阅 DataSource.error 对它们进行操作(参见 http://docs.kendoui.com/api/framework/datasource#error )。

关于asp.net-mvc - 返回逻辑错误的最标准/正确的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113652/

相关文章:

batch-file - 使用管道运算符时出现错误时批处理脚本终止

jquery - 如何提供一个使用 ASP.NET MVC 和 jQuery(不是自动完成)实时过滤结果的文本框?

asp.net-mvc - 写入/输出未转义的 HTML 字符串

com - 对于 “this object is not completely initialized”正确使用HRESULT

.net - Autofac 和 IDisposable 接口(interface)

asp.net-mvc-3 - MVC 将 JSON ViewModel 传递给 View

node.js - 如果路由未知,Express.js会忽略SyntaxError

asp.net-mvc - 如何使用 NHibernate Envers 记录当前用户

sql - 无法创建文件,因为它已经存在。更改文件路径或文件名,然后重试操作

c# - 返回 View 模型时数据未恢复以查看验证错误 asp.net mvc 5