2010-03-31 63 views
2

我正在構建一些MVC應用程序,我非常喜歡MVC中的數據註釋支持。支持構建足以執行簡單的驗證檢查。我想知道,如何使用自定義數據註釋來實現獨特字段驗證?例如,我有一個視圖模型,需要用戶註冊一個新的登錄名,有沒有辦法檢查(使用Model.IsValid)在調用db提交之前名稱是否不存在?如何在MVC中實施唯一字段驗證

回答

1

你可以編寫自己的驗證器屬性來檢查我猜的數據庫,或者你可以加載所有數據並檢查它。

我會更傾向於試圖寫入數據庫並在表中具有唯一約束。如果您收到一個錯誤,指出存在重複的插入錯誤,那麼您只需向用戶顯示該錯誤。

我不會期待閱讀和檢查自己。

編輯

我想你也可以做的檢查中,做插入的代碼。你可以做一個閱讀,如果沒有發現,然後插入。

如果您確實找到了重複項,您可以添加到模型驗證違規規則並返回,以便錯誤出現在頁面上的驗證摘要中。

-1

創建自己的屬性,該屬性繼承自ValidationAttribute(DataAnnotations命名空間中所有驗證屬性的基礎)。使用用戶標識唯一性檢查覆蓋IsValid方法。

+0

對不起,我沒有說清楚。我知道我可以執行自定義驗證屬性,但爲了執行唯一性檢查,我需要將對象或db上下文/存儲庫的列表傳遞給驗證邏輯,我不確定它是否合適。 – xandy 2010-03-31 07:27:37