我只是在學習MVC,似乎無法弄清楚如何處理以下情況,我有一個帶有送貨地址和帳單地址的表單。各個領域都需要。 「結算地址與送貨地址相同」也有一個複選框。我的問題是,除非兩個地址都完成,否則模型狀態永遠不會有效。我可以很容易地處理這與一些JavaScript,只是將貨運地址的值添加到帳單地址字段,但如果有更好的方法來處理這一點,我想知道。關於如何處理這個問題的任何指導方針都會很棒。謝謝!如何處理MVC3中的條件驗證?
5
A
回答
4
有很多方法可以解決這個問題。如果您沒有使用客戶端驗證,那麼您可以簡單地在模型上實現IValidatableObject,並重寫IsValid()方法並執行一些代碼來檢查模型的有效性。
如果您使用的是客戶端驗證,那麼您需要一個自定義屬性,或者使用類似fluent validation的東西。
4
您可以通過創建一個自定義的驗證屬性做到這一點:
http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx
它的要點是,你創建一個新類based off ValidationAttribute
,並IClientValidatable
,覆蓋並在必要時實施,添加您的客戶端 - 方面驗證(無論如何您都需要),並將該屬性應用於您的可選字段。
或者由於驗證可以儘可能複雜,因此將其應用於共享部分可選部分必填字段。
這個人也有他正在編寫的庫的alpha,使MVC驗證更靈活。我自己沒用過,但是you could give it a try。
相關問題
- 1. MVC3中的條件驗證
- 2. ASP.Net MVC3條件驗證
- 3. RequiredIf MVC3中的條件驗證
- 4. MVC3中的條件驗證組
- 5. 如何在MVC3中處理服務層驗證
- 6. MVC3有條件的jQuery驗證
- 7. 有條件的驗證MVC3模型類
- 8. 如何處理h:inputText驗證?
- 9. 如何在Silverlight中處理驗證?
- 10. 如何爲條件驗證
- 11. Laravel驗證條件如何
- 12. Windows批處理:如果條件未通過驗證
- 13. 如何處理的學說2驗證
- 14. 如何處理mvc3中的多個validationsummary
- 15. 如何在MVC3 Razor View中顯示每個條件的驗證摘要?
- 16. MVC3驗證循環中的控件
- 17. 如何處理DataGridView列中的條件?
- 18. 條件如何處理?
- 19. MVC3 .NET - 驗證
- 20. MVC3驗證
- 21. MVC3 DataAnnotaions驗證
- 22. 如何處理文本框驗證?
- 23. 如何處理Bean驗證例外
- 24. 如何處理ASP.NET身份驗證
- 25. 如何處理WPF驗證和MVVM?
- 26. 導軌如何處理表單驗證?
- 27. 如何處理非法參數驗證
- 28. Grails:如何處理JSR 303 bean驗證
- 29. 如何處理多個身份驗證
- 30. jquery中的條件驗證
您的帳單和送貨地址是單獨的型號嗎?或者一個模型包裝在一起? – chemicalNova
他們在同一個模型。兩者都是相同類型的屬性。 – Mike