मेरे पास अलग मॉडल और व्यूमोडेल कक्षाएं हैं। जहां व्यूमोडेल क्लासेस केवल यूआई स्तर सत्यापन करते हैं (देखें: Validation: Model or ViewModel)।मॉडल और दृश्य मॉडल के लिए प्रमाणीकरण सर्वोत्तम अभ्यास
मैं नियंत्रक में पोस्ट एक्शन पर सत्यापित कर सकता हूं कि मॉडल (vewmodel) मान्य है।
पूछें: मैं मॉडल (डेटा एनोटेशन के साथ मुख्य इकाई) को कैसे सत्यापित करूं?
मैं मॉडल ऑब्जेक्ट का उपयोग करके व्यूमोडेल विकसित नहीं कर रहा हूं। बस गुणों को डुप्लिकेट करना और उस विशेष दृश्य में आवश्यक सभी गुणों को जोड़ना।
//Model Class
public class User
{
[Required]
public string Email {get; set;}
[Required]
public DateTime Created {get; set;}
}
//ViewModel Class
public class UserViewModel
{
[Required]
public string Email {get; set;}
[Required]
public string LivesIn {get; set;}
}
//Post action
public ActionResult(UserViewModel uvm)
{
if(ModelState.IsValid)
//means user entered data correctly and is validated
User u = new User() {Email = uvm.Email, Created = DateTime.Now};
//How do I validate "u"?
return View();
}
कुछ इस तरह करना चाहिए:
var results = new List<ValidationResult>();
var context = new ValidationContext(u, null, null);
var r = Validator.TryValidateObject(u, context, results);
क्या मैं सोच रहा हूँ (व्यापार इकाई के) आधार वर्ग में यह मान्यता तकनीक जोड़ रहा है, और यह जब मैं से मानचित्रण हूँ की पुष्टि व्यवसाय इकाई के लिए viewmodel वर्ग।
कोई सुझाव?
पीआरडी @Serghei मैं वास्तव में जानना चाहता था मैं कैसे कर समाधान मैं के साथ आया था (शायद नहीं सबसे अच्छा) निम्नलिखित है मॉडल वर्ग को मान्य करें (जो देखने के लिए बाध्य नहीं है)। यह देखते हुए कि मेरे विचारों में उस विशेष दृश्य पर सभी आवश्यकताओं को पूरा करने के लिए विभिन्न मॉडल वर्गों (व्यू मॉडेल क्लास में) से गुण हैं। – Yahya
@Yahya क्या आप एक उदाहरण पोस्ट कर सकते हैं? यह इंगित करना आसान होगा कि आपको कहां होना चाहिए, और कैसे, सत्यापन करना है। – David
prd मैंने आपके लिए मूल प्रश्न में नमूना कोड जोड़ा है। मुझे आशा है कि अब यह समझ में आता है। – Yahya