2012-06-11 40 views
2

我使用ASP.NET MVC2。
我愛我怎麼可以標註我的模型的字段和檢查ModelState.IsValid當檢查,什麼時候不檢查ModelState.IsValid

明顯的原因,以檢查它是在做驗證的時候,但你應該經常檢查它的情況下,新的驗證規則應用到模型?
這樣,你不要忘記/需要檢查是否控制器檢查IsValid

有一些理由不這樣做此項檢查在所有情況下?也許只是當控制器操作有副作用(DB寫入等)時?

回答

6

但是,如果新驗證規則 應用於模型,您應該始終檢查它嗎?

你應該這樣做檢查總是否則你最終堅持不具有有效狀態的模型。

5

一般來說,在asp.net-MVC,傳遞到動作模式是視圖模型,它們包含需要採取行動,以行爲所有和唯一的數據。如果這些數據是無效的,理論上應該不可能採取行動來完成其工作。

ModelState.IsValid保證在需要採取行動的所有數據均處於良好狀態,隨時準備採取行動。我看不到不希望驗證數據的原因。

2

在嘗試使用模型中收集的數據做某件事之前,您應該始終檢查模型是否有效。這首先是驗證的目的。

1

這看起來顯而易見,但我會給它一個鏡頭。 還有不需要檢查模型的狀態,當你是不發佈你的模型。常見的情況是當您從服務獲取數據並在獲取操作中顯示時。