我可以在敲除验证中手动添加错误消息吗?

bpl*_*lus 10 asp.net-mvc-4 knockout.js knockout-validation

我正在使用MVC 4进行knockout.js淘汰验证.我可以通过敲除验证来执行客户端验证.但是我需要确保发布到我的控制器的任何视图模型都是有效的.因此,我手动验证我的视图模型服务器端并返回序列化为JSON的模型状态(同事编写了一个简单的函数来执行此操作).我的问题是我想知道如何使用knockout-validation来使用JSON序列化模型状态来输出错误.

那么有没有办法在淘汰验证中手动添加错误和消息?

Kev*_*ios 15

最新的淘汰验证版本添加了以下内容:

//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);
}
Run Code Online (Sandbox Code Playgroud)

所以你可以使用它们来手动向你的observable添加错误,但是像graeme链接的另一个问题那样,没有内置的方法来映射它们.

之前我所做的只是在表单下方/上方显示模型状态错误以显示服务器端验证错误,并且在输入类型错误旁边有ko验证处理所有客户端.比提出复杂的映射方案容易得多,特别是如果您有复杂的表单数据.


Sim*_*ver 13

除了凯文所说的我发现我需要打电话isModified来让消息真正显示出来.我想这是因为我更改了消息出现时的默认设置.

observable.setError('Your password is incorrect');
observable.isModified(true);
Run Code Online (Sandbox Code Playgroud)