2016-01-04 7 views
7

मैंने IsValid हमेशा सत्य होने के बारे में बहुत सी पोस्ट देखी हैं लेकिन उनमें से किसी ने भी मुझे इस समस्या को हल करने में मदद नहीं की है। मैं एमवीसी 5 का उपयोग कर एएसपी.NET 4 में भी यह समस्या देख रहा हूं। तो स्पष्ट रूप से मैं कहीं एक कदम लापता हूँ।एएसपी.नेट 5, एमवीसी 6, वेबएपीआई -> मॉडलस्टेट.इस्वालिड हमेशा सत्य लौटाता है

नियंत्रक विधि:

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

ValuesObject कक्षा:

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 वेब एपीआई में, आप गुण अपने मॉडल पर के लिए मान्यता नियम तय करने 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

संबंधित मुद्दे