我现在正在尝试不同的客户端 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/