我最近使用Knockout和ASP.NET MVC4将Breeze添加到了一个项目中.我非常喜欢Breeze,它可以节省大量代码.
我已经使用了Knockout验证,比如它如何验证数据条目中的属性字段文本框以及错误消息的显示方式.
我想用在验证要求在后端用C#限定在所述对象的属性的属性的组合,则验证的要求在元数据接收,然后敲除验证都可以使用.
我想我可以通过在前端定义属性并应用Knockout验证来解决这个问题
Run Code Online (Sandbox Code Playgroud)classProperty.extend({ required: true }) .extend({ minLength: 3 });有没有办法使用Knockout验证而无需在前端应用验证要求?如果没有,你在考虑这样做吗?
这个问题是由johnvarney在我们的IdeaBlade论坛上发布的.我在这里重新提出问题和答案,因为我认为它对Breeze Stack Overflow社区有用.
我正在学习淘汰赛,Durandal和Breeze,感谢John Papa的JumpStart SPA视频,这是一种乐趣.所以我检查了这个项目的代码,现在我正在尝试更改验证机制.
此时,保存更改时,如果保存失败,我们会收集错误并显示带有错误恢复的Toast.

我想要实现的是:
能够在视图中标记红色(背景颜色)无效的字段
当一个toast显示并且验证错误恢复时(例如:'保存失败:需要affairNr')我想用一个更友好的名称替换属性名称(类似'保存失败:需要事件号')
以下是datacontext.js中验证的部分代码:
var saveChanges = function () {
return manager.saveChanges()
.then(saveSucceeded)
.fail(saveFailed);
function saveSucceeded(saveResult) {
log('Saved data successfully', saveResult, true);
}
function saveFailed(error) {
var msg = 'Save failed: ' + getErrorMessages(error);
logError(msg, error);
error.message = msg;
throw error;
}
};
function getErrorMessages(error) {
var msg = error.message;
if (msg.match(/validation error/i)) {
return getValidationMessages(error);
}
return msg;
}
function getValidationMessages(error) {
try {
//foreach entity with a validation error
return …Run Code Online (Sandbox Code Playgroud)