ASP.NET MVC2 এ Validation Check ২ ভাবে করা যায়
JavaScript এর মাধ্যমে Client side এ এবং Controller এর মাধ্যমে Server Side এ. তবে ২ ধরনের Validation রাখা ভালো. কারণ Client side এর Browser এ JavaScript Enable না থাকলে Client side validation show করবে না।
আমরা এখানে Server side Validation দেখাব।
Controller Page [StudentController.cs]
===============================================
StudentRepository studentRepositoryObj = new StudentRepository();
[LINQ to SQL Classes. আমরা এ class er Object এর মাধ্যমে Data Save করব]
//[অনেক ভাবে post Data receive করা যায়. আমরা এখানে FormCollection formValus মাধ্যমে Data receive করব।]
//
// POST: /Student/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection formValus)
{
ViewData["groupName"] = LoadDropDownList();
Student studentObj = new Student();
studentObj.Status = true;
studentObj.Name = Request.Form["Name"].Trim();
studentObj.Age = Convert.ToInt16(Request.Form["Age"]);
studentObj.Bio = Request.Form["Bio"];
studentObj.Type = Request.Form["Type"];
string status = Request.Form["Status"];
string status3 = Request.Form.GetValues("Status")[1];
bool state;
if (bool.TryParse(status, out state))
{
studentObj.Status = state;
}
string status2 = Request.Form["IsActive"];
if (studentObj.Name.Length== 0)
{
ModelState.AddModelError("Name", "Name is required.");
}
if (studentObj.Age < 18 || studentObj.Age > 120)
{
ModelState.AddModelError("Age", "Age between 18 to 120.");
}
if (studentObj.Bio.Trim().Length == 0)
{
ModelState.AddModelError("Bio", "Please Post Bio.");
}
if (studentObj.Type.Length == 0)
{
ModelState.AddModelError("Type", "Group Not Selected.");
}
if (bool.TryParse(status2, out state))
{
studentObj.IsActive = state;
}
else
{
ModelState.AddModelError("IsActive", "Tick on Activity");
}
if (!ModelState.IsValid)
{
return View("Create", studentObj);
}
studentRepositoryObj.Add(studentObj);
studentRepositoryObj.Save();
return RedirectToAction("Index");
}
Validation Check এর জন্য আমরা প্রত্যকটি data receive করে Check করব যে ঠিক মত আছে কিনা। যদি না থাকে তবে ModelState.AddModelError এ ADD করে রাখব।
ModelState.AddModelError("Age", "Age between 18 to 120.");
AddModelError এর ২ টি parameter আছে।
প্রথমটি Object property অথবা name.
২য়টি আমরা যে Message Show ক রতে চাই তা।
ModelState যদি Valid না হয় তবে আমরা আবার View Page এ Object নিয়ে যাবো এবং Error message Show করব Html.ValidationSummary() এবং Html.ValidationMessage("Name","*") এর মাধ্যমে।
আর যদি Valid হয় তবে studentRepositoryObj Object এর মাধ্যমে Save ক রব এবং index page এ Redirect ক রে চলে যাব।
View Page [Create.cs]
===============================================
<% using (Html.BeginForm()) {%>
<%List<string> groups = ViewData["groupName"] as List<string>; %>
<% var studentObj = ViewData.Model as StudentInfo; %>
<%= Html.ValidationSummary() %> <%--Display Controller Message--%>
<fieldset>
<legend>New Student</legend>
<P>
<%= Html.Label("Name") %>:
<%= Html.TextBox("Name")%>
<%= Html.ValidationMessage("Name","*") %>
</p>
<p>
<%= Html.Label("Age") %>:
<%= Html.TextBox("Age") %>
<%= Html.ValidationMessage("Age", "*") %>
</p>
<p>
<%= Html.Label("Bio") %>:
<%= Html.TextArea("Bio","",5,23,null) %>
<%= Html.ValidationMessage("Bio", "*") %>
</p>
<p>
<%= Html.Label("Type") %>:
<%= Html.DropDownList("Type", new SelectList(type), "Select")%>
<%=Html.ValidationMessage("Type", "Select Group")%>
</p>
<p>
<%= Html.Label("Status") %>:
<%= Html.CheckBox("Status")%>
<%= Html.CheckBox("Status")%>
</p>
<p>
Is Active:
<%= Html.RadioButton("IsActive","True")%>Yes
<%= Html.RadioButton("IsActive", "False")%>No
<%=Html.ValidationMessage("IsActive", "Activity not Selected") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
No comments:
Post a Comment