2012-03-07 54 views
3

在我的ASP.NET MVC應用程序中,我有一個表單,並且我使用了ViewModel,因此ModelBinder可以綁定到我的強類型類。我正在使用DataAnnotations進行驗證禁用'值'xxx'對'yyy'消息無效

public class FormViewModel 
{ 
    [Required] 
    public string SomeValue {get;set;} 

    [Range(0, 10, ErrorMessage="Enter a number between 0 and 10.")] 
    public byte? SomeOtherValue {get;set;} 

} 

This works great。然而,問題是當用戶沒有爲SomeOtherValue輸入一個有效值(比如abc)時,彈出一個標準的MVC錯誤:''abc'值'SomeOtherValue'無效。這真的很煩人,因爲我無法自定義此消息。我知道有些方法可以本地化此消息,但這樣做沒有意義(我不想要一般消息,我想要一個特定於值的值)。

我嘗試將RegularExpression屬性應用於'SomeOtherValue',它只允許字節值,但可能是標準驗證'覆蓋'此驗證。是否有某種方法可以爲屬性應用自定義的「值無效」消息,否則禁用標準消息?

回答

0

這是一個不同的(非理想的方式,恕我直言)修復它,如果自定義驗證屬性不適合你。在控制器中:

​​3210
+0

當然,這將使用該消息替換該字段的所有錯誤...您可以執行額外的檢查,並且僅在以「值」開始時才替換錯誤等。 – MikeSmithDev 2013-10-10 20:51:14