Blog

ASP.NET Core MVC’de Doğrulama (Validation) Kullanımı: Yöntemler ve İpuçları

Bu makalede, ASP.NET Core MVC kullanarak veri doğrulama kontrolleri nasıl gerçekleştirilir, bu yöntemler nelerdir ve bunları nasıl uygularız konusuna değineceğim.

  1. Ana Sınıfa Doğrudan Uygulama

Bu yöntemde, ilgili sınıfın özelliklerine doğrudan doğrulama işlemleri eklenir. Bunun için sayfamızda using System.ComponentModel.DataAnnotations; ifadesinin ekli olması gerekmektedir. Aşağıdaki örnekte, Açıklama alanının boş olmaması gerektiğini ve hata durumunda alınacak mesajı belirttik.

Bu yöntem, kolay olmasına rağmen, burada belirttiğimiz kuralların Code First gibi yaklaşımlarda veritabanı tablolarına da yansıyacağını unutmamak önemlidir. Benzer şekilde, Database First yaklaşımında, her veritabanı güncellemesinde bu kuralların ana sınıflardan silineceğini unutmayın.

public class person

{
[Required(ErrorMessage = "Dikkat Bu alanı boş geçmeyin.")]
public string Aciklama { get; set; }
}
  1. ModelMetadataType Kullanarak Başka Sınıfta Doğrulama Yapma

Bu yöntemde, doğrulama işlemini başka bir sınıfa taşıyoruz. Bu sayede ana sınıfımız daha temiz kalır ve doğrulama görevi ise başka bir sınıfa devredilir.

[ModelMetadataType(typeof(personMetadaType))]

public class person
{
public string comments { get; set; }
}
   public class personMetadaType

{
[Required(ErrorMessage = "Dikkat Bu alanı boş geçmeyin.")]
public string Aciklama { get; set; }
  1. FluentValidation Kütüphanesi ile Doğrulama Yapma

FluentValidation, klasik ASP.NET için FluentValidation ve ASP.NET Core için FluentValidation.AspNetCore paketlerini NuGet üzerinden yükleyerek kullanılır. Bu makalede, ASP.NET Core MVC’ye göre ilerlediğimiz için ona göre anlatıyorum.
Başlamak için, Startup dosyasına using FluentValidation.AspNetCore; ifadesini ekleyerek ConfigureServices metodunda AddFluentValidation yöntemiyle FluentValidation’ı kaydediyoruz.

public void ConfigureServices(IServiceCollection services)

{
services.AddControllersWithViews().AddFluentValidation(x=>x.RegisterValidatorsFromAssemblyContaining<Startup>());
}

RegisterValidatorsFromAssemblyContaining() fonksiyonu, FluentValidation yapısının projemizde belirttiğimiz assembly içindeki tüm doğrulama yapılarını bulmasını sağlar. Startup dosyası yerine projedeki başka bir sınıfı da verebilirdik.

Bu adımdan sonra, FluentValidation yapısı projemizdeki AbstractValidator sınıfından türeyen tüm yapıları takip edecektir.

public class person

{
public string comments { get; set; }
}
    public class KisiFluentValidation : AbstractValidator<person>

{
public KisiFluentValidation()
{
RuleFor(x => x.Aciklama).NotNull().WithMessage("Bu alan null geçilemez.");
RuleFor(x => x.Aciklama).NotEmpty().WithMessage("Bu alan emty geçilemez.");
}
}

Yukarıdaki örnekte, personFluentValidation sınıfını AbstractValidator sınıfından türeyen bir sınıf olarak tanımladık ve Kisi türünde olduğunu belirttik. FluentValidation yapısı, kurallarımızı Constructor içerisinde tanımlamamızı bekler. RuleFor metodunu kullanarak kurallarımızı yazdık.

Genellikle, teknik açıdan, ikinci veya üçüncü yöntem daha fazla tercih edilmektedir.

Ercan KURT

Uzun yılların birikimiyle sistem, network ve DevOps alanlarında derinlemesine uzmanlaştım. Aynı zamanda MCT olarak eğitmenlik yaparak, bilgi ve deneyimimi bir araya getirerek yeni nesil profesyonellerin yetişmesine katkı sağlıyorum.Yetkinliklerim :Microsoft Certified: Azure Administrator AssociateMicrosoft Certified: DevOps Engineer ExpertMicrosoft Certified: Azure Solutions Architect ExpertMicrosoft Certified: Trainer 2022-2024Cisco Certified: Network Associate (CCNA) 

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu