asp.net-mvc - 客户端 MVC 框架(Backbone、Knockout 等)和验证

标签 asp.net-mvc backbone.js knockout.js asp.net-web-api

我现在正在尝试不同的客户端 MVC 框架(主要是 Backbone 和 Knockout)。我正在尝试想出一种方法来验证。我有仅返回数据的 MVC 4 Web API。所有 View 引擎逻辑都位于客户端。显然,我知道服务器端验证是必须的。我通过模型绑定(bind)使用 DataAnnotations 和标准 ASP.NET MVC 验证来实现这一点。

但是,我现在也在客户端复制了所有验证逻辑。有没有办法返回数据但附加验证逻辑?

最佳答案

Blast-Dan 部分正确,这意味着除了键值对之外,您无法从客户端向服务器传递额外的数据。

但是,您可以做的是将 DataAnnotations 传播到客户端,以便不需要重写某些验证代码。对于复杂的规则来说,这并不简单,但是 Html.EditorFor 帮助程序将帮助您生成带有附加验证属性的输入文本框,这些属性由 jquery 验证无缝拾取并停止表单提交。 我正在考虑 [Required]、[Range()] 和 [RegularExpression()] 数据注释等。

如果您只是创建一个普通模型,然后使用向导在 Visual Studio 中添加 Controller 来创建用于 CRUD 操作的 View ,您可以看到一个快速示例。您将看到在 Model 类中使用的数据注释最终如何呈现在输出 html 上。

如果您在没有 HtmlHelper 的情况下自己创建 HTML(我认为您可能会在给定 knockout 标记的情况下这样做),您可能需要检查从 this link 开始的 DataAnnotationsModelValidatorProvider 和 IClientValidatable 接口(interface).

如您所见,这仍然是未知领域:/

关于asp.net-mvc - 客户端 MVC 框架(Backbone、Knockout 等)和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759756/

相关文章:

asp.net-mvc - 在 View 模型中检索数组

.htaccess - Backbone.js PushState routes .htaccess 仅作为散列工作,但无处可寻

javascript - Marionette.js 集合在 Collection View 中未定义

backbone.js - 连接主干 View 的正确方法

asp.net-mvc - MVC模型最佳实践——如何处理非用户输入数据

asp.net-mvc - 更新多个数据库 MVC 5

javascript - 值未绑定(bind)到 knockout.js 中的 Ko.observable

javascript - knockout 示例模板示例不起作用

javascript - 无法通过 Chosen 和 Knockout Binding 取消选择选项

asp.net-mvc - 自动更新网络应用