我有一个与使用knockout和ASP.NET Web API进行客户端验证相关的问题.我希望视图将是完全静态的(可能是排除根index.html/cshtml),我不想通过手写js中的数据注释属性规则来重复自己.
我的上下文是Durandal上的中型(约20-40个实体和商业层)应用程序.
我找到的不成功/不合适的方式及其解释:
1.使用Breeze.js
在第一次看来,Breeze.js看起来就像我需要的那样.工作原理:它通过/ Metadata链接共享json,然后将其映射到knockout.valudate插件.一切都很好,但共享实体对我来说看起来很奇怪(我需要忘记Nunit,复杂的服务器逻辑等等......让你的datacontext公开是可怕的:不安全而不是数据安全!).使用JObject参数保存方法对我来说也很奇怪.
2.从Web api获取数据,从Breeze或Web Api获取元数据(如何?)并在客户端上进行转换
我发现的唯一解决方案就是这个:https://github.com/johnculviner/FluentKnockoutHelpers.它在cshtml中呈现ALL(它不是那么重要,但从我的观点来看并不好)元数据,然后他将它映射为knockout.validate.可能在那里它有一个类似的即用型框架,具有类似的功能,我可以从api通过json获取matadata并提供淘汰赛?
3.在构建中的html中渲染cshtml
复杂的构建过程!
您可能有其他静态HTML和Web API应用程序的解决方案吗?
asp.net asp.net-mvc unobtrusive-validation asp.net-web-api knockout.js