我在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"
...不确定这是否可靠。
是否可以为字段设置属性,以便在失败时我可以获得该字段的错误描述?我愿意接受建议。
答案 0 :(得分:0)
听起来你需要使用Exception.Data。更多信息可以在这里找到:
http://msdn.microsoft.com/en-us/library/system.exception.data.aspx
答案 1 :(得分:0)
将有问题的代码放在try catch块中。在catch部分的某处设置断点。然后添加一个名为 ModelState 的观察项目。
ModelState.IsValid 会告诉您模型是否有效(或错误)。
ModelState.Keys 会显示模型包含的字段列表。
ModelState.Values 将显示每个相应字段的数据值。深入研究每个节点,您将看到错误节点,其中包含该数据项中有多少错误的计数。寻找错误超过0的那个。记下其索引,然后返回 ModelState.Keys [索引注释] 以查看导致错误的字段。
说实话,一旦你到目前为止,你将获得所需的所有信息,以解决任何此类错误。我会告诉你的。