উপর NerdDinner উদাহরণ পেশাগত ASP.NET MVC 1.0 কপি নিচে (বিনামূল্যে NerdDinner সংস্করণের পৃষ্ঠা 89) নামে একটি নতুন ডিনার তৈরি করতে একটি পদ্ধতি আছে।
সেখানে এটি মডেলস্টেট চেক করে। সত্যের জন্য অসমর্থ। দেখে মনে হচ্ছে মডেলটি ডাটাবেসের জন্য বৈধ কিনা তা (যা এটি অবৈধ ফর্ম্যাট সহ তারিখের মতো, তবে ব্যবসায়িক বিধি নয়) হিসাবে ডেটা ধরণের রূপান্তরগুলি ধারণ করে। এটা কি সত্যি?
ফর্মটি জমা দেওয়ার সময়, যদি তারিখে আপনার কোনও ত্রুটি থাকে, মডেলস্টেট.আইএসভিডটি মিথ্যা হবে এবং আপনি একটি ত্রুটি ফিরে পাবেন তবে কেবলমাত্র তারিখের জন্য কারণ অ্যাডরুলভিউলেশনগুলি কখনও কার্যকর হয়নি। আপনি যদি মডেলস্টেটের জন্য চেকটি পুরোপুরি সরিয়ে ফেলেন sআইএসভালিড, তবে আপনি অবৈধ হওয়ার তারিখটিতে চিহ্নিতকরণ সহ সমস্ত ত্রুটি (ব্যতিক্রমের কারণে) পেয়ে যাবেন। তারপরে, মডেলস্টেটের জন্য চেক কেন? কেন সেখানে আদৌ অসামান্য? আমি কিছু অনুপস্থিত করছি?
//
// POST: /Dinners/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) {
if (ModelState.IsValid) {
try {
dinner.HostedBy = "SomeUser";
dinnerRepository.Add(dinner);
dinnerRepository.Save();
return RedirectToAction("Details", new {id = dinner.DinnerID });
} catch {
ModelState.AddRuleViolations(dinner.GetRuleViolations());
}
}
return View(dinner);
}