MVC

2010-06-22 11 views
18

के बाहर ASP.Net MVC डाटा एनोटेशन का उपयोग करता है, तो वहाँ MVC साइट के बिना ASP.Net के डेटा एनोटेशन का उपयोग करने के लिए एक रास्ता है मैं सोच रहा था।MVC

मेरे उदाहरण मैं एक वर्ग है कि एक बार बनाया जरूरतों मान्य करने की है, या एक त्रुटि फेंक होगा। इनटाइटलिसर द्वारा निकाले गए ब्लॉक के गुच्छा के बजाय, मुझे डेटा एनोटेशन विधि पसंद है।

क्या यह काम करने के लिए कोई तरीका है?

मैंने सोचा कि यह की तरह कुछ होगा:

  • डेटा जोड़ें एनोटेशन
  • आग initialiser उस वर्ग

किसी भी विचार पर MVC सत्यापनकर्ता कॉल में एक विधि? मैं मानता चाहिए मैं के रूप में मैं उम्मीद कर रही थी मैं सिर्फ डेटा एनोटेशन वर्ग System.ComponentModel.DataValidation

+0

मैंने डेटा वैलिडेशन क्लास का अपना संस्करण बनाया है, यदि संभवतः लोग रुचि रखते हैं तो मैं इसे आउटसोर्स कर सकता हूं। यह एमवीसी 2 से पहले किया गया था, और अधिक जटिल मामलों को समायोजित कर सकता है। –

उत्तर

26

यहाँ इस्तेमाल कर सकते हैं अपने प्रोजेक्ट के लिए MVC ढांचे जोड़ा नहीं किया एक उदाहरण है:

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 

public class Foo 
{ 
    [Required(ErrorMessage = "the Bar is absolutely required :-)")] 
    public string Bar { get; set; } 
} 

class Program 
{ 
    public static void Main() 
    { 
     var foo = new Foo(); 
     var results = new List<ValidationResult>(); 
     var context = new ValidationContext(foo, null, null); 
     if (!Validator.TryValidateObject(foo, context, results)) 
     { 
      foreach (var error in results) 
      { 
       Console.WriteLine(error.ErrorMessage); 
      } 
     } 
    } 
} 

लेकिन काफी ईमानदारी से FluentValidation ज्यादा है अधिक शक्तिशाली।

+3

मैं .NET 3.5 समाधान की तलाश में था - प्रमाणीकरण कॉन्टेक्स्ट .NET 4.0 – Doug

+1

से पहले उपलब्ध नहीं है @ डौग इसे प्रश्न में एक रिक के रूप में रखना चाह सकता है। –

+0

दुर्भाग्यवश, यह सत्यापन किसी भी जटिल बच्चे वस्तुओं या संग्रहों के माध्यम से पुन: कार्य नहीं करता है। Validator.TryValidateObject (...) केवल तत्काल संपत्ति और फ़ील्ड सत्यापन करता है, और इसे एक दिन कहते हैं, जैसा कि एमवीसी दुनिया में नियंत्रक में मॉडल बाध्यकारी पर होने वाली वैधता का विरोध करता है जो पूरे ऑब्जेक्ट ग्राफ़ को पार करता है। – neumann1990