7

我在 MVC3 中创建了一个 REST API,我需要做的一件事是在更新或创建操作失败时返回描述性消息。

像这样的消息"The update operation failed while creating the customer object."还不够好。

我的下一个想法是从返回以下内容的异常中获取消息:

The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_Business_Category". The conflict occurred in database "MyDb_Dev", table "dbo.Category", column 'CategoryID'.
The statement has been terminated.

这似乎是太多的信息。我可以解析出column "CategoryID"异常消息...不确定这是否可靠。

是否可以为字段设置属性,以便当它们失败时我可以获得该字段的错误描述?我愿意接受建议。

4

2 回答 2

0

听起来您需要使用 Exception.Data。更多信息可以在这里找到:

http://msdn.microsoft.com/en-us/library/system.exception.data.aspx

于 2012-05-14T18:34:13.117 回答
0

将有问题的代码放在 try catch 块中。在 catch 部分的某处设置断点。然后添加一个名为ModelState的监视项。

ModelState.IsValid将告诉您模型是否有效(或错误)。

ModelState.Keys将显示模型包含的字段列表。

ModelState.Values将向您显示每个相应字段的数据值。深入每一个,您将看到一个错误节点,其中包含该数据项中有多少错误的计数。寻找超过 0 个错误的那个。记下它的索引,然后返回ModelState.Keys[Index noted]查看哪个字段导致了错误。

老实说,一旦你走到这一步,你就会拥有所有你需要的信息来解决任何此类错误。我会留给你知道的。

于 2012-05-25T06:55:47.117 回答