Asp.net-Mvc

使用 Knockout JS + MVC + 伺服器端模型驗證顯示錯誤?

  • October 9, 2014

使用 Knockout JS 和 jQuery 模板控制 Html 表單。基本 jQuery 驗證用於驗證欄位。表單被序列化為 JSON 並使用 AJAX 送出給 MVC 控制器操作。MVC 控制器操作執行伺服器端模型驗證,將錯誤添加到 ModelState。

  1. 將這些錯誤返回給客戶端的最佳實踐是什麼 - 遍歷 ModelState 中的錯誤並將它們添加到 JSON 響應中的錯誤鍵/值集合?
  2. 如何在客戶端顯示錯誤?您如何將錯誤的鍵/值集合“綁定”到模型上的相關欄位?

假設模型上有一個“名稱”欄位,相應的文本框由 jQuery 模板呈現。如何獲取錯誤集合中“名稱”欄位的錯誤並在“名稱”文本框下方顯示錯誤消息?

ko.js 有兩個驗證外掛(在此處找到)可以幫助您,

敲敲驗證

淘汰賽驗證

您可以將其中一個連接到注入客戶端的 mvc 不引人注目的驗證數據。

如果您使用 MVC,不顯眼的 javascript 會根據您模型中的驗證集執行客戶端驗證。您無需執行任何其他配置。

話雖如此,沒有直接的方法可以使用 javascript 和 knockoutjs 基於模型執行客戶端驗證。

在客戶端有幾種方法可以做到這一點。

  1. Jquery 或任何其他驗證框架都可以執行驗證。但是你需要有標籤。這種方法的優點是您的程式碼將簡單且易於維護。
  2. 您可以使用 javascript 執行客戶端自定義驗證,並使用敲除綁定驗證消息。這需要您為每個輸入變數創建錯誤標籤。這種方法的優點是您可以完全控制必須顯示的方式和內容。

就個人而言,我在最近的一個項目中有類似的要求,我使用自定義驗證檢查和錯誤標籤實現了它。

引用自:https://stackoverflow.com/questions/8393775