返回逻辑错误的最标准/最正确的方法是什么?

时间:2012-10-28 22:30:17

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

ASP.Net MVC 3,Kendo UI Web。

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

除了技术问题(网络连接断开)之外,还有几个逻辑问题 - 例如用户没有写任何内容的权限,或者数据锁定,或者用户尝试更新同时删除的内容等等。

所以我想在这种情况下返回一个错误,所以我可以用Kendo和display来处理它,让我们说一些警告对话框(JS alert)。

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

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

1 个答案:

答案 0 :(得分:1)

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

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