2012-11-29 56 views
7

我最近將Breeze添加到使用Knockout和ASP.NET MVC4的項目中。我非常喜歡Breeze,它可以節省很多編碼。在Breeze和Knockout中進行驗證

我已經使用了Knockout驗證,就像它驗證數據輸入的屬性字段文本框以及錯誤消息的顯示方式。

我想使用一個組合,在後端使用對象屬性上的C#屬性定義驗證需求,然後在元數據中接收驗證需求,然後可以使用Knockout驗證。

我想我可以解決它通過在前端定義的屬性和應用淘汰賽驗證例如

classProperty.extend({ required: true }) 
      .extend({ minLength: 3 }); 

是否有使用淘汰賽驗證,而不必在從前到應用驗證要求的方式結束?如果不是,你在考慮這樣做嗎?

這個問題由johnvarney發佈在我們的IdeaBlade論壇上。因爲我認爲這對Breeze Stack Overflow社區有用,所以我在此重新發布問題和答案。

回答

6

正如您可能已經注意到的,Breeze已經基於元數據執行驗證。基本的「驗證」規則,比如是否需要屬性,是數據類型還是長度,如果字符串是在服務器上自動生成併發送到客戶端的。這些驗證規則也可以通過直接修改客戶端上的「驗證」元數據來擴展。

有關此主題的更多信息可在API文檔中找到:http://www.breezejs.com/sites/all/apidocs/classes/Validator.html以及Breeze Samples下載中的「DocCode」示例目錄中。

我們還計劃提供如何將微風驗證「連接」到各種第三方庫(如jQuery和Knockout)的示例。不幸的是,由於其他高度要求的功能的工作,這些示例目前不是高優先級。您可能想投票支持Breeze User Voice https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions上的這些示例。我們認真對待下一步該做什麼決定。