2012-03-04 43 views
2

我在使用PHP框架廣泛,找到scenarios非常有用的。 總結,情景讓你有不同的視圖不同的驗證標準。MVC3:不同的驗證針對不同輸入場景

問題

我可以使用內置的驗證MVC3,但有不同的驗證標準,不同的看法。是有一個內置在這個功能呢?

說明

在的形式我只是想驗證密碼的變化之一,另一種形式我只是想驗證新的用戶參數,另一個地方只需要一些詳細的數據輸入的驗證。所有值都存儲在同一個表,但需要不同的輸入值設置

+1

你應該考慮使用強類型的視圖模式來包裝你的數據。這些可以抱你需要在每個需要的基礎上驗證。 – 2012-03-04 10:42:09

+0

同意Travis,如果你想對不同的視圖有不同的驗證邏輯,你應該爲每個視圖創建一個單獨的視圖模型。 http://www.asp.net/mvc/mvc3#BM_Model_Validation_Improvements – timothyclifford 2012-03-04 10:48:39

+0

有趣,看來我需要使用IValidatableObject ..讓Ç我可以找到有關 – arkoak 2012-03-04 12:37:19

回答

2

沒有,因爲內置的架構驗證是基於屬性,這使得它很難在運行時更改的驗證要求,如果你越過意見共享模式。

因此,最好的辦法是爲每個視圖中創建不同的模型。

如果需要定製應用的驗證在運行時你的模型,那麼你可以使用http://fluentvalidation.codeplex.com/

這不是內置的,但與現有的ASP.NET MVC的驗證組件協同工作,因此可以搭配不引人注目的驗證/模型狀態等

+0

FluentValidation似乎也是一個不錯的選擇,但我已經使用了多個類每個視圖來解決我的情況。我想我的問題的正確答案是在那裏...... ==不,你不能在asp.net中有場景,而不是以一種簡單的方式。 – arkoak 2012-03-08 21:50:38