2016-01-04 7 views
7

私はIsValidについて常に多くの記事を見てきましたが、どれもこの問題を解決できませんでした。私はMVC5を使用してASP.NET 4でこの問題も見ています。だから明らかに私はどこかのステップを欠いている。ASP.NET 5、MVC6、WebAPI - > ModelState.IsValidは常にtrueを返します

コントローラ方法:

public IHttpActionResult Post([FromBody]ValuesObject value) 
{ 
    if (ModelState.IsValid) 
    { 
     return Json(value); 
    } 
    else 
    { 
     return Json(ModelState); 
    } 
} 

ValuesObjectクラス:POSTの

public class ValuesObject 
{ 
    [Required] 
    public string Name; 

    [Range(10, 100, ErrorMessage = "This isn't right")] 
    public int Age; 
} 

ボディ:

{ 
    Age: 1 
} 

ModelState.IsValidが真です。

しかし、私は、必須と範囲検証の両方が失敗すると予想します。

私は何が欠けていますか?

おかげで、あなたはあなたのモデルのフィールドを使用することはできません

ケビン

答えて

13

。検証のためにはone of general conditionsです。 ASP.NETのWeb APIで

、あなたのモデルにプロパティの検証 ルールを設定する System.ComponentModel.DataAnnotations名前空間からの属性を使用することができます。

の特性とそれを交換し、すべてが正常に動作します:

public class ValuesObject 
{ 
    [Required] 
    public string Name { get; set; } 

    [Range(10, 100, ErrorMessage = "This isn't right")] 
    public int Age { get; set; } 
} 
+0

はそれを見て、目の余分なペアをありがとう! – retsvek

関連する問題