2015-05-06 101 views
2

我正在構建ASP.NET Web API 2. 我正在將JSON數據序列化到我的模型中,該模型使用DataAnnotations,更具體地說是Range和RegularExpression。DataAnnotations無效值的消息

但是,當ModelState無效時,一切都很好,我希望能夠將所有無效值返回給客戶端。

實施例:

public class Book { 
    ...(fields removed for brevity) 
    [Range(0, 100)] 
    public int? Pages { get; set; } 
} 

目前當客戶端發送消息以無效範圍(-1例如)時,返回的消息爲:「字段的頁面必須在0和100之間」

我想返回如下所示:「字段Pages必須介於0和100之間。當前值爲-1。」

+1

你不能在屬性訪問屬性值(你只能使用常量/靜態值)。不知道爲什麼你需要這樣做(它應該是顯而易見的用戶剛剛進入),但你需要覆蓋'$ .validator.unobtrusive.adapters.add()'方法並添加自己的消息 –

+0

您可以始終實現您自己的屬性來檢查模型驗證。從'ValidationAttribute'派生。 –

+0

檢查出'http:// stackoverflow.com/questions/16100300/asp-net-mvc-custom-validation-by-dataannotation' –

回答

0

你的模型看起來是這樣的:

[Range(0,100)] 
[MinValue(0, "The field Pages must be between 0 and 100")] 
public int? Pages { get; set; }