26 Ocak 2026 Pazartesi

Web Programlama - 3. Sınıf - 7. Ünite Özet

Web Programlama 2 - Ünite 7: Model Doğrulama (Validation)
Ders Notları

Model Doğrulama (Validation)

Web Programlama 2 - Ünite 7: Güvenli Veri İşleme

Temel Prensip

"Kullanıcıdan gelen veriye asla güvenilmez."

Bu ünite, bu güvensizliği sistematik bir güvene dönüştürmeyi; veriyi veritabanına kaydetmeden önce format, aralık ve kurallar süzgecinden geçirmeyi öğretir.

1

Veri Doğrulamanın İki Cephesi

1. İstemci Taraflı (Client-Side)

  • Konum: Kullanıcının tarayıcısı (JavaScript/jQuery).
  • Avantaj: Çok hızlıdır. Sunucuyu yormaz. Anlık geri bildirim verir.
  • Risk: JS kapatılabilir veya Postman ile aşılabilir. Tek başına yetersizdir.

2. Sunucu Taraflı (Server-Side)

  • Konum: Controller katmanı (C#).
  • Önemi: Güvenlik duvarıdır. Son savunma hattıdır.
  • Strateji: İstemci tarafı geçilse bile burası veriyi yakalar.
2

Data Annotations (Kural Seti)

Model sınıflarında özelliklerin (properties) tepesine yazılan kurallardır. System.ComponentModel.DataAnnotations kütüphanesi kullanılır.

[Required]
Zorunlu Alan
Boş geçilemez.
[StringLength(50)]
Karakter Sınırı
Max/Min uzunluk.
[Range(18,100)]
Aralık Kontrolü
Sayısal değer aralığı.
[EmailAddress]
E-Posta Formatı
x@y.com formatı.
[RegularExpression]
Özel Desen (Regex)
Telefon, TC Kimlik vb.
[Display(Name="..")]
Görünen İsim
Label etiketi için.
3

Uygulama: Öğrenci Kayıt Senaryosu

Adım 1: Anayasa (Model)

Kuralların tanımlandığı yer.

Models/Ogrenci.cs
public class Ogrenci
{
    // Kural 1: Boş geçilemez, özel hata mesajı
    [Required(ErrorMessage = "İsim boş bırakılamaz")]
    [Display(Name = "Ad Soyad")]
    public string AdSoyad { get; set; }

    // Kural 2: 1 ile 6 arasında olmalı
    [Range(1, 6)]
    public int Sinif { get; set; }
}

Adım 2: Arayüz Yansıması (View)

asp-validation-for etiketi kuralları okur ve hatayı gösterir.

Views/Ogrenci/Ekle.cshtml
<form asp-action="Kaydet">
    
    <!-- Etiket -->
    <label asp-for="AdSoyad"></label>
    
    <!-- Giriş Kutusu -->
    <input asp-for="AdSoyad" class="form-control" />

    <!-- Hata Mesajı Alanı -->
    <span asp-validation-for="AdSoyad" class="text-danger"></span>

    <input type="submit" value="Ekle" />
</form>

@* JavaScript kontrolü için (Client-side) *@
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Adım 3: Son Kontrol (Controller)

ModelState.IsValid ile verinin anayasaya uygunluğu denetlenir.

Controllers/OgrenciController.cs
[HttpPost]
public IActionResult Kaydet(Ogrenci ogr)
{
    // Sihirli Kontrol: Kurallara uyuyor mu?
    if (ModelState.IsValid)
    {
        // Uygun: Veritabanına kaydet
        Ogrenciler.Add(ogr);
        return View(ogr);
    }
    else
    {
        // Uygun DEĞİL: Hata mesajlarıyla formu geri gönder
        return View("Hata");
    }
}

Profesör Notu: Altın Kural

1. TANIMLA
Modelde kuralları yaz.
2. YANSIT
View'de hataları göster.
3. DENETLE
Controller'da onayla.

Web Programlama 2 © 2024

Ünite 7: Model Doğrulama (Validation) - Akademik Ders Notları

Hiç yorum yok:

Yorum Gönder

Web Programlama - 3. Sınıf - 8. Ünite Özet

Web Programlama 2 - Ünite 8: LINQ Teknolojisi Ders No...