我正在使用MVC 4knockout.js
并进行淘汰验证。我可以通过敲除验证很好地执行客户端验证。但是我需要确保发布到我的控制器的任何视图模型都是有效的。因此,我手动验证了我的视图模型服务器端并返回序列化为 JSON 的模型状态(一位同事编写了一个简单的函数来执行此操作)。我的问题是我想了解如何使用淘汰验证来使用 JSON 序列化模型状态来输出错误。
那么有没有办法在淘汰验证中手动添加错误和消息?
我正在使用MVC 4knockout.js
并进行淘汰验证。我可以通过敲除验证很好地执行客户端验证。但是我需要确保发布到我的控制器的任何视图模型都是有效的。因此,我手动验证了我的视图模型服务器端并返回序列化为 JSON 的模型状态(一位同事编写了一个简单的函数来执行此操作)。我的问题是我想了解如何使用淘汰验证来使用 JSON 序列化模型状态来输出错误。
那么有没有办法在淘汰验证中手动添加错误和消息?
最新的淘汰验证版本添加了以下内容:
//manually set error state
observable.setError = function (error) {
observable.error = error;
observable.__valid__(false);
};
//manually clear error state
observable.clearError = function () {
observable.error = null;
observable.__valid__(true);
}
因此您可以使用这些手动将错误添加到您的 observables,但就像 graeme 链接的另一个问题一样,没有内置的方法来映射它们。
我之前所做的只是在表单下方/上方显示模型状态错误以显示服务器端验证错误,并在输入类型错误旁边让 ko 验证处理所有客户端。比提出复杂的映射方案要容易得多,尤其是当您有复杂的表单数据时。
除了凯文所说的,我发现我需要打电话isModified
才能让信息真正显示出来。我认为这是因为我更改了消息出现时的一些默认设置。
observable.setError('Your password is incorrect');
observable.isModified(true);