Mustafa UCA ve TheGizem'in Çektiği HERKESİ ŞAŞIRTAN FLAŞ VİDEO!
1 hafta önce - Teknoloji
Uygulama geliştirirken önemli konulardan bir tanesi kullanıcı tarafından alınan bilgilerin doğruluğu ve hatalı bilgi girişi durumunda kullanıcının bilgilendirilmesidir.Hal böyle olunca tasarladığımız modeller üzerinde belli kurallar belirmemiz gerekiyor.Belirlenen bu kurallar bir yönde verilerin doğruluğunu sağlarken bir yandan da uygulamanın güvenliğini sağlamaktadır.Örnek bir model tasarlayalım ve projelerimizde nasıl kullanıyoruz ona bakalım.
Örnek; |
---|
public class Student { [Key] public int Id { get; set; } [Required(ErrorMessage = "Zorunlu alan")] public int ClassId { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [RegularExpression(@"[A-z^şŞıİçÇöÖüÜĞğ\s]*", ErrorMessage = "Geçersiz metin girişi")] public string Name { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [RegularExpression(@"[A-z^şŞıİçÇöÖüÜĞğ\s]*", ErrorMessage = "Geçersiz metin girişi")] public string LastName { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [DataType(DataType.PhoneNumber)] [MaxLength(11, ErrorMessage = "Telefon numarası 11 haneli olmalıdır"), MinLength(11, ErrorMessage = "Telefon numarası 11 haneli olmalıdır")] [RegularExpression("^(?!0+$)(\\+\\d{1,3}[- ]?)?(?!0+$)\\d{10,15}$", ErrorMessage = "Telefon numarası format dışı")] public string PhoneNumber { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [MaxLength(11, ErrorMessage = "Okul numarası 11 haneli olmalıdır"), MinLength(11, ErrorMessage = "Okul numarası 11 haneli olmalıdır")] public string SchoolNumber { get; set; } [ReadOnly(true)] public DateTime CreateDate { get { return DateTime.Now;} } [ReadOnly(true)] public bool IsDeleted { get { return false;} } [Required(ErrorMessage = "Zorunlu alan")] [Range(1, 100, ErrorMessage = "1 ile 100 arası bir değer giriniz")] public int Age { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Format dışı email")] public string Email { get; set; } [Required(ErrorMessage = "Zorunlu alan")] [MaxLength(11, ErrorMessage = "Kimlik numarası 11 haneli olmalıdır"), MinLength(11, ErrorMessage = "Kimlik numarası 11 haneli olmalıdır")] public string IdentityNumber { get; set; } } |
Controller |
---|
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Add(Student student) { try { using (var context = new EducationContext()) { if (!ModelState.IsValid) return View(student); else { context.Students.Add(student); context.SaveChanges(); return RedirectToAction("Index", "Education"); } } } catch { return View(student); } } |
View |
---|
@using (Html.BeginForm("Add", "Education", routeValue)) { @Html.AntiForgeryToken() @Html.TextBoxFor(student => student.Name, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.Name) @Html.TextBoxFor(student => student.LastName, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.LastName) @Html.TextBoxFor(student => student.IdentityNumber, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.IdentityNumber) @Html.TextBoxFor(student => student.PhoneNumber, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.PhoneNumber) @Html.TextBoxFor(student => student.Email, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.Email) @Html.TextBoxFor(student => student.Age, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.Age) @Html.TextBoxFor(student => student.SchoolNumber, new { @class = "form-control" }) @Html.ValidationMessageFor(message => message.SchoolNumber) @Html.DropDownListFor(student => student.ClassId, new SelectList((IEnumerable)TempData["studentClasses"], "Id", "Name"), "Seçiniz", new { @class = "form-control" }) } |
Bir adet Asp.Net Mvc uygulaması oluşuturup controller ve view kısımlarımızı üstteki gibi configure ettik.Daha sonra Add metodu içersinde
ModelState.Isvalid kontrolü ile model belirlenen kurallara uymuyorsa modeli view’a tekrar gönderdik.ValidationMessageFor ile gelen hata mesajlarını kullanıcının görmesini sağladık.Sizde uygulamalarınızda validation süreçlerinizi bu şekilde yönetebiliriz.
Modern Taxi Drive Parking 3D Game: Taxi Games 2020Copyright © 2019 Azbucuk. Tüm hakları saklıdır.