Angular with .NET WebAPI验证和单点实证

sha*_*non 7 validation asp.net-mvc angularjs

是否有一种方法可以保留验证的单一定义,允许立即进行客户端验证,并且仍然提供服务器端验证的优势?

我熟悉以下两种方法:

第一个基于模型中陈述的规则在Razor输出中呈现ng-validation语法.当Razor的观点经常不能直观地与一个组织良好的Angular应用程序配对时,这似乎让我对构建Razor视图过于紧密.我可以使用这种方法,但似乎更多的是想要复制"不引人注目的jQuery/MVC验证"的人,而不是建立一个非常适合Angular的东西.

第二种方法只是将服务器端验证返回给Angular进行渲染.它也没有彻底完成它.如果需要,我可以在没有客户端验证的情况下运行,因为单页应用程序仍然不会屏幕闪烁...但它并不理想.

例如,可能有一个工具集可以直接在WebAPI上直接反映验证规则,并在Angular应用程序中使用它们.还是我还没找到的另一种方法?

https://www.youtube.com/watch?v=lHbWRFpbma4#t=1336,演示者似乎暗示这个问题已经为Angular得到了很好的解决,并且引用了specification(DDD使用规范模式进行验证).如果你知道有任何工具可以解决我的问题,我很乐意听到.

ps看起来这几乎肯定是一个经常被问到的问题.对不起,我发布之前无法在这里找到答案

pps我目前正计划使用Entity Framework,但我会转而解决这个问题.哎呀,我会考虑转换到一个完全不同的平台,这是我的第一个以角度为中心的项目.

bha*_*tol 2

我推荐的方法基于 @Esteban Felix 评论,我在 Java/Bean 验证和 JSON 模式生成器中使用了类似的策略。

使用使用 DataAnnotations 验证模型数据来注释您的域模型

使用 JSON.net 生成架构其他有用的链接

创建一个AutoValidate指令,继续使用AngularJS内置指令来装饰字段,以进行表单验证,ngPattern例如min/max. 就我而言,我创建了从 Java 世界到 AngularJS 指令的映射,并且在我需要的任何地方我们创建了自定义指令。