Model State এবং Validation Error এমভিসি ফ্রেমওয়ার্কে ডেটা ভ্যালিডেশন ও ইনপুট যাচাইকরণের জন্য গুরুত্বপূর্ণ উপাদান। Model State হলো একটি প্রক্রিয়া, যা মডেল ডেটার সঠিকতা এবং পূর্ণতা নিশ্চিত করতে ব্যবহৃত হয়, এবং Validation Error হলো সেই ভুল বা অস্বীকৃত ডেটার মাধ্যমে ব্যবহারকারীর কাছে সঠিক ত্রুটি বার্তা প্রেরণ করার পদ্ধতি। এটি নিশ্চিত করে যে ডেটা সঠিক ফরম্যাটে এবং প্রয়োজনীয় শর্ত পূর্ণ করে সার্ভারে পাঠানো হচ্ছে।
Model State (মডেল স্টেট)
Model State এমভিসি ফ্রেমওয়ার্কে একটি অবজেক্ট যা মডেল ডেটার শুদ্ধতা এবং বৈধতা যাচাই করে। যখন কোনো ফর্ম সাবমিট করা হয়, তখন মডেল স্টেট সেই ডেটার সঠিকতা যাচাই করে এবং যদি কোনো ত্রুটি থাকে, তবে সেগুলি ModelState তে জমা হয়।
Model State চেক করা
এমভিসি কন্ট্রোলার অ্যাকশন মেথডে, আপনি ModelState.IsValid প্রোপার্টি ব্যবহার করে মডেল স্টেট চেক করতে পারেন। এটি true রিটার্ন করে যদি মডেলটি বৈধ হয়, অন্যথায় false রিটার্ন করে, এবং ত্রুটি বার্তা জমা হয়।
উদাহরণ: Model State চেক করা
public ActionResult Create(User user)
{
if (ModelState.IsValid)
{
// মডেল বৈধ হলে ডেটা প্রসেস করুন
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
// মডেল বৈধ না হলে, ত্রুটি দেখান
return View(user);
}
}
এখানে, ModelState.IsValid চেক করা হচ্ছে। যদি মডেল বৈধ না হয়, তবে ত্রুটি বার্তা ভিউতে ফেরত পাঠানো হয়।
Validation Error (ভ্যালিডেশন ত্রুটি)
Validation Error হলো সেই ত্রুটি যা ব্যবহারকারীর ইনপুট যাচাই করার পর ঘটে, যখন কোনো ইনপুট শর্ত পূরণ না করে। এমভিসি ফ্রেমওয়ার্কে, আপনি Data Annotations ব্যবহার করে মডেল ক্লাসে ইনপুট ফিল্ডের জন্য বৈধতা বিধি নির্ধারণ করতে পারেন এবং সেই অনুযায়ী ত্রুটি বার্তা প্রদর্শন করতে পারেন।
Data Annotations দিয়ে ভ্যালিডেশন
Data Annotations হল বিশেষ ধরনের এট্রিবিউট যা মডেল প্রোপার্টিতে প্রযোজ্য করা হয়, যাতে ইনপুট ফিল্ডের জন্য বিভিন্ন প্রকার ভ্যালিডেশন এবং ত্রুটি বার্তা নির্ধারণ করা যায়। উদাহরণস্বরূপ:
public class User
{
[Required(ErrorMessage = "Name is required")]
[StringLength(100, ErrorMessage = "Name cannot be longer than 100 characters")]
public string Name { get; set; }
[Required(ErrorMessage = "Email is required")]
[EmailAddress(ErrorMessage = "Invalid email address")]
public string Email { get; set; }
[Required(ErrorMessage = "Password is required")]
[StringLength(100, MinimumLength = 6, ErrorMessage = "Password must be at least 6 characters long")]
public string Password { get; set; }
}
এখানে, Required, StringLength, এবং EmailAddress সহ Data Annotations ব্যবহার করা হয়েছে, যা ইনপুটের জন্য ভ্যালিডেশন বিধি নির্ধারণ করে। যদি কোনো ইনপুট ভ্যালিড না হয়, তবে নির্দিষ্ট ত্রুটি বার্তা মডেল স্টেটে জমা হয়।
উদাহরণ: Validation Error প্রদর্শন
@model User
<form method="post" action="/User/Create">
<label for="Name">Name</label>
<input type="text" id="Name" name="Name" value="@Model.Name" />
@Html.ValidationMessageFor(m => m.Name)
<label for="Email">Email</label>
<input type="email" id="Email" name="Email" value="@Model.Email" />
@Html.ValidationMessageFor(m => m.Email)
<label for="Password">Password</label>
<input type="password" id="Password" name="Password" />
@Html.ValidationMessageFor(m => m.Password)
<button type="submit">Create</button>
</form>
এখানে, @Html.ValidationMessageFor ট্যাগটি ব্যবহার করে প্রতিটি ইনপুট ফিল্ডের জন্য ত্রুটি বার্তা প্রদর্শন করা হচ্ছে। যদি কোন ফিল্ডের ইনপুট ভ্যালিড না হয়, তবে উপযুক্ত ত্রুটি বার্তা ফর্মের নিচে প্রদর্শিত হবে।
ModelState এবং Validation Error এর সাথে কাজ করা
ModelState এবং Validation Error একে অপরের সাথে কাজ করে, যখন একটি ফর্ম সাবমিট করা হয়, তখন প্রথমে ইনপুট ডেটা ভ্যালিডেট করা হয়। যদি ModelState বৈধ হয়, তবে ডেটা সার্ভারে প্রক্রিয়া করা হয়, অন্যথায় Validation Errors সংগ্রহ করা হয় এবং সেগুলি ইউজারকে ফেরত পাঠানো হয়।
উদাহরণ: ModelState চেক এবং Validation Error হ্যান্ডলিং
public ActionResult Create(User user)
{
if (ModelState.IsValid)
{
// ডেটা ভ্যালিড হলে, ডেটাবেসে সংরক্ষণ করুন
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
// ModelState যদি বৈধ না হয়, তাহলে Validation Error প্রদর্শন করুন
return View(user);
}
}
এখানে, যদি ModelState.IsValid false হয়, তবে মডেল স্টেট থেকে সমস্ত ত্রুটি বার্তা সংগ্রহ করা হয় এবং সেই বার্তা ব্যবহারকারীকে ফেরত পাঠানো হয়। এটি Validation Error হ্যান্ডল করার একটি সাধারণ পদ্ধতি।
সার্বিকভাবে
Model State এবং Validation Error এমভিসি ফ্রেমওয়ার্কে ডেটা যাচাই এবং ত্রুটি বার্তা প্রদর্শনের গুরুত্বপূর্ণ উপাদান। ModelState ডেটার সঠিকতা যাচাই করে এবং Validation Error ব্যবহৃত হয়ে ইউজারকে ত্রুটি বার্তা প্রদর্শন করে। Data Annotations ব্যবহার করে আপনি মডেল ফিল্ডগুলির জন্য বিভিন্ন ভ্যালিডেশন শর্ত এবং ত্রুটি বার্তা নির্ধারণ করতে পারেন, যা সফটওয়্যার ডেভেলপমেন্টে কোডের বিশুদ্ধতা এবং ইউজার ইন্টারঅ্যাকশনের মান উন্নত করতে সাহায্য করে।
Read more