MVC3管理远程验证异常

时间:2012-09-07 10:57:09

标签: asp.net-mvc asp.net-mvc-validation remote-validation

我有以下问题: 我正在使用远程验证来验证字段,现在我正在尝试管理异常

public class ValidationController : Controller
{
    List<string> values = new List<string>() { "AAAA", "BBBB" }; //blacklist

    public JsonResult NameAllowed(string ID)
    {
        throw new Exception();
        //return Json(!values.Contains(ID), JsonRequestBehavior.AllowGet);
    }

}

但是在这种情况下表单没有提交(ERROR 500通过网络捕获,dev工具栏)并且没有出现任何错误。

  1. 管理异常的最佳方法是什么(例如Timeout和 不可预测的例外)?
  2. 是否存在解决方案(任何服务器端参数)以跳过这些错误以提交表单?
  3. 提前致谢

1 个答案:

答案 0 :(得分:1)

远程验证应该仅用作客户端的图形反馈,以防止用户向服务器发送无用的数据。您应该始终对您必须验证的所有内容进行服务器端验证,如果您这样做,那么您的表单将被发送但未获得批准,并且您的验证错误将与重新显示一起显示使用无效输入呈现的表单。

将客户端/远程验证作为具有2个目的的“预验证”

  1. 防止无用的服务器端处理
  2. 提供更具响应性的数据验证,而不是等待提交表单。
  3. 但是,它们永远不会用于实际验证数据。

    修改

    那就是说,如何正确地编写验证代码,使用try catch并且不让任何unhandle异常崩溃?