2009-12-16 95 views
0

我試圖選擇最適合我的MVC應用程序的服務器/客戶端驗證框架。我想知道什麼是用MVC做服務器/客戶端驗證的最佳驗證框架。爲MVC選擇最佳客戶端/服務器驗證框架

我的選擇是:

  • 城堡驗證
  • 微軟數據註釋
  • NHibernate的驗證
+0

如果你甚至還沒有給出你的驗證要求,人們怎麼能幫助你解決這個問題?如果你想要問題的最佳框架,那麼應該指定你的要求 - 你將如何驗證?你想內置服務器/客戶端驗證功能嗎?你的驗證規則是簡單的(長度/類型/要求)還是複雜的(每個條件多個字段/ DDD聚合樹不變約束/等等)?有了這些細節,人們可以非常主觀地回答你的問題。如果您將問題更具體化,則無需標記您的問題。 – 2009-12-16 08:24:41

回答

0

我一直在使用xVal,取得了很大的成功。

最好的事情是,你可以完全自動化驗證:

  • DataAnnotations(或特殊規則)到業務層的POCO類(如果有的話),或者實體類的元數據好友類,如果你使用實體到控制器層
  • 編寫一個ActionFilter,它將自動驗證控制器操作的參數 - 如果所有POCO(或實體)都實現了定義Validate()方法的特定接口,則過濾器調用此方法並在驗證時填充ModelState.Errors失敗。
  • 在需要不同的工作,你的控制器動作添加if (ModelState.IsValid) { ... }當模型不
  • 將有效<%= Html.ValidationMessage(...)在你的意見,將顯示驗證錯誤
  • 添加XVAL的%>客戶端驗證您的意見如果需要

這樣你就設置了自動對象驗證。你所有的控制器動作都會檢查模型有效性。

Asp.net MVC 2將有一些非常類似於已經在框架中構建的xVal,所以它取決於您使用的是哪個版本。

2

隨着即將到來的MVC 2,它看起來像MS朝System.ComponentModel.DataAnnotations庫傾斜。這很不錯 - 爲你做了很多代碼生成。

+0

感謝您的回覆, 與現在已經有一段時間的城堡相比,它會更好嗎? – ace 2009-12-16 03:43:08

+0

城堡似乎更富有特色。這是面向ASP.NET動態數據的。我還沒有使用它,所以不確定。 – 2009-12-16 07:49:04