Model:
Burada kullandığımız model içindeki propertyleri belirledik. Örneğin; Name propertysine gerekli olduğunu üstüne yazdığımız [Required(ErrorMessage = "Name is Required")] anotasyonu ile belirledik. Eğer bu alan yoksa, view içinde bu alanı bağladığımız component(textbox) hata verecektir. Email alanına da gerekli olduğunu belirten anotasyon koyduk ve regular expression anotasyonu ile email yanlış formatta girildiğinde uyarı vermesini sağlamış olduk.using System.ComponentModel.DataAnnotations; namespace ServerValidation.Models { public class Student { [Required(ErrorMessage = "Name is Required")] public string Name { get; set; } [Required(ErrorMessage = "Email is Required")] [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage="Email is not valid")] public string Email { get; set; } } }
Controller:
Yukarıda da if (ModelState.IsValid)kod satırıyla modelin doğruluğunu kontrol ettik.using System.Web.Mvc; using ServerValidation.Models; namespace ServerValidation.Controllers { public class StudentController : Controller { public ActionResult Index() { return View(); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Index(Student model) { if (ModelState.IsValid) { ViewBag.Name = model.Name; ViewBag.Email = model.Email; } return View(model); } } }
View:
@model ServerValidation.Models.Student
@{
ViewBag.Title = "Index";
}
@if (ViewData.ModelState.IsValid)
{
if(@ViewBag.Name != null)
{
<b>
Name : @ViewBag.Name<br />
Email : @ViewBag.Email
</b>
}
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Student</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
View kısmına da yukarıdaki gibi validason mesajlarımızı bastırmak için @Html.ValidationMessageFor(model => model.Name) kodunu kullandık.
Projeyi çalıştırdığımızda create buttonuna basılınca aşağıdakine benzer bir görüntü olacaktır:
0 yorum:
Yorum Gönder