我最近使用Knockout和ASP.NET MVC4将Breeze添加到了一个项目中。我非常喜欢Breeze,它可以节省很多代码。
我使用过Knockout验证,比如它如何验证数据输入的属性字段文本框以及错误信息的显示方式。
我想使用一种组合,其中验证要求在后端使用对象属性上的C#属性定义,验证要求在元数据中接收,然后可以使用Knockout验证。
我想我可以通过在前端定义属性并应用Knockout验证来解决它,例如
classProperty.extend({ required: true }) .extend({ minLength: 3 });
有没有办法在不必在前端应用验证要求的情况下使用Knockout验证?如果没有,你在考虑这样做吗?
这个问题是由johnvarney在我们的IdeaBlade论坛上发布的。我在这里重新提出问题和答案,因为我认为它对Breeze Stack Overflow社区有用。
答案 0 :(得分:6)
您可能已经注意到,Breeze已经根据元数据执行验证。基本的“验证”规则,例如是否需要属性,它是数据类型,如果在服务器上自动生成字符串并将其发送到客户端,则为长度。还可以通过直接修改客户端上的“验证”元数据来扩展这些验证规则。
API文档中提供了有关此主题的更多信息:http://www.breezejs.com/sites/all/apidocs/classes/Validator.html以及Breeze Samples下载中的“DocCode”示例目录。
我们还计划提供如何将breeze验证“连接”到各种第三方库的示例,例如jQuery和Knockout。不幸的是,由于在其他高要求的功能上工作,这些示例目前不是高优先级。您可能希望在我们的Breeze用户语音https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions上投票支持这些示例的工作。我们认真对待该场所,决定下一步该做什么。