1

我想知道在使用getter和setter時,模型驗證的最佳做法是什麼。具體來說,我的模型中有可空字段,在某些使用情況下,訪問時不應該有空值。在這些情況下,我想從吸氣劑中拋出一個例外,但這是一種公認​​的做法嗎?在getter和setters中拋出異常

這也可能是這種情況,如果我在setter中收到一個無效的值。

另外從拋出異常,我知道你可以用來修飾字段,但沒有使用它們非常多的MVC屬性進行模型驗證。在「這個值不應該在我的getter中爲空」的情況下,是否可以使用適當的屬性?另外,如果在getter和setter中拋出異常被接受,是否存在拋出的推薦異常,即ValueNotValidException(如果這是真實的)?

+0

好像你只是問[that](http://stackoverflow.com/questions/14390711/net-mvc-shielding-nullable-domain-properties-with-model)。 – rae1

+0

我做過了,但這個問題是切線的,並側重於我的另一個問題的特定部分。 –

回答

0

如果你要使用的對象作爲視圖模型,你可以通過微軟的Enterprise Library,還有一幫其他人提供額外的功能,例如Regex驗證給出一個[NotNullValidator]標註它,範圍,IgnoreNulls,類型等如here所示。也可以使用這個庫來創建基於this step-by-step guide的自定義驗證器,您可以使用該驗證器來註釋您的ViewModel。

否則,你會留下更傳統的MVC Data Annotation Attributes,如[Required]