【问题标题】:Display errors using Knockout JS + MVC + Server-side Model Validation?使用 Knockout JS + MVC + 服务器端模型验证显示错误?
【发布时间】:2012-01-13 16:37:40
【问题描述】:

使用 Knockout JS 和 jQuery 模板控制 Html 表单。 基本 jQuery 验证用于验证字段。 表单被序列化为 JSON 并使用 AJAX 提交给 MVC 控制器操作。 MVC 控制器操作执行服务器端模型验证,向 ModelState 添加错误。

  1. 将这些错误返回给客户端的最佳做法是什么 - 遍历 ModelState 中的错误并将它们添加到 JSON 响应中的键/值错误集合中?

  2. 如何在客户端显示错误?如何将错误的键/值集合“绑定”到模型上的相关字段?

假设模型上有一个“名称”字段,相应的文本框由 jQuery 模板呈现。如何获取错误集合中“名称”字段的错误并在“名称”文本框下方显示错误消息?

【问题讨论】:

    标签: asp.net-mvc json validation knockout.js model


    【解决方案1】:

    有两个 ko.js (found here) 的验证插件可以帮助你,

    Knock-Knock validation

    Knockout Validation

    您可以将其中一个连接到注入客户端的 mvc 非显眼验证数据。

    【讨论】:

    • 查看第二个选项(Knockout Validation)后,我想知道如何将验证属性从 MVC 视图模型映射到 Knockout 中的 .extend() 方法?
    【解决方案2】:

    如果您使用 MVC,不显眼的 javascript 会根据您模型中的验证集执行客户端验证。您无需执行任何其他配置。

    话虽如此,没有直接的方法可以使用javascript和knockoutjs基于模型执行客户端验证。

    在客户端有几种方法。

    1. Jquery 或任何其他验证框架都可以执行验证。但是你需要有标签。这种方法的优点是您的代码将简单且易于维护。
    2. 您可以使用 javascript 执行客户端自定义验证,并使用敲除绑定验证消息。这需要您为每个输入变量创建错误标签。这种方法的优点是您可以完全控制必须显示的方式和内容。

    就个人而言,我在最近的一个项目中有类似的要求,我使用自定义验证检查和错误标签实现了它。

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2017-03-03
      • 2015-05-05
      • 1970-01-01
      相关资源
      最近更新 更多