我有一個屬性的類,它有一個範圍屬性。範圍驗證 - 使規則有例外
[Required]
[Range(5, 9999)]
public double Price { get; set; }
這是在任何時候,對任何用戶輸入的尊重。
但是在一個特定的代碼路徑中,我將某些條目自動化,我希望能夠將Price設置爲0.所以我想以編程方式告訴這個模型類忽略這個要求。
可能嗎?如果是這樣如何?
我有一個屬性的類,它有一個範圍屬性。範圍驗證 - 使規則有例外
[Required]
[Range(5, 9999)]
public double Price { get; set; }
這是在任何時候,對任何用戶輸入的尊重。
但是在一個特定的代碼路徑中,我將某些條目自動化,我希望能夠將Price設置爲0.所以我想以編程方式告訴這個模型類忽略這個要求。
可能嗎?如果是這樣如何?
這看起來像是this question的副本,但也許我並不完全瞭解您的要求。
對於您的情況,我可能會嘗試實現IValidatableObject接口,以便您可以控制驗證邏輯而不是使用聲明性驗證模式。
我在許多情況下不使用視圖。有時候,這些模型會使用API或Windows服務等來調用。 – MoXplod 2012-01-02 05:50:50
我建議你創建派生類型System.ComponentModel.DataAnnotations.ValidationAttribute
。該實現可以類似於具有額外值的附加參數的RangeAttribute類。
查看this MSDN article瞭解有關如何操作的詳細信息。
你應該使用雙似乎是貨幣價值? – Lloyd 2012-01-02 05:49:32
好問題...你通常使用什麼?在sql server和.net? – MoXplod 2012-01-03 08:25:47
Decimal http://msdn.microsoft.com/en-us/library/ms187746.aspx – Lloyd 2012-01-03 08:30:43