有没有人有一个优雅的方式来处理ASP.Net MVC中的错误?在处理控制器操作的请求时,我经常遇到问题,其中Action可以用于正常请求和AJAX请求。我遇到的问题是找到一种处理这些问题的优雅方式。
例如,我如何处理验证错误?理想情况下,我想通过AJAX将表单提交给服务器,然后返回所有操作所发生的错误,并将其显示在页面上,但是当客户端关闭JavaScript时,通过正常的回发工作可以正常工作。我知道我们可以使用jQuery验证插件,但是它是不一样的,也不理想,考虑到要验证的数据的限制将在两个地方指定(我的nHibernate验证映射和JavaScript文件) 。
用户何时请求不存在的记录?我应该重定向到404页面吗?如果请求是通过Ajax进行的(比如,在对话框中加载)。
所以:
当使用Ajax调用它们时,如何处理控制器动作抛出的错误?特别是模型状态错误(即验证)。可以通过JSON发送吗?
你有没有提示如何使控制器的行动,通常正常和通过Ajax工作良好?编写动作方法时这是一个令人讨厌的问题。由于返回类型,我可能需要一个不同的结果,具体取决于调用者。有没有这样做没有两个行动方法?
您在处理MVC中的错误的一般策略是什么?你重定向到错误页面很多吗?你重定向到另一个页面吗?
编辑:我认为部分问题是我想要不同的事情发生,所以如果有一个错误,我想要阻止任何进展,直到它的修复,因此发回错误。否则我可能想更新页面的不同区域。但是如果我有一个回报,我将如何知道这是一个成功或失败,而不是包含一个具有指示属性的对象(因此使得部分视图更加困难)
谢谢