0

我有這些性能的SearchViewModel:ValidateModel問題與DataAnnotations

[RegularExpression("name")] 
    public String SortField; 

    [RegularExpression("asc|desc")] 
    public String SortDirection; 

正如你所看到的,我想「名」是在這一次的SortField的唯一有效的值,「ASC」或「 desc「是SortDirection的唯一有效值。

但是,當值不同時,ValidateModel不會捕獲任何錯誤,並且ModelState.IsValid返回true。基本上我可以提供任何價值,它會一直貫穿始終。

縮寫控制器方法:

public ActionResult List(SearchViewModel model) 
    {    
     ValidateModel(model); // No error here 
     Boolean isValid = ModelState.IsValid // This is true 

     //... 
    } 

我在做什麼錯?

編輯:我不確定這是否重要,但我使用的是自定義ModelBinder。

回答

3

那些不屬性;他們是字段。綁定和驗證只有針對屬性進行工作。

FYI - [RegularExpression]也允許用戶指定沒有值的輸入(它被轉換爲空)。如果您想要禁止空值,請使用[Required]以及[RegularExpression]

+0

明白了,謝謝。 – Alex 2010-06-04 20:59:03