Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 45361|Yanıt: 1

[ASP.NET] ASP.NET Core(4) filtresi birleşik ModelState model validasyonu

[Bağlantıyı kopyala]
2021-3-13 tarihinde 20:48:05 tarihinde yayınlandı | | | |
C# formatındaki model durumu ve veri açıklamaları, veri doğrulaması talep etmemiz için bize pratik bir yol sunar. ModelState model doğrulaması, arka uçun çok fazla parametre doğrulama işini kaydetmesine yardımcı olmak anlamına gelir, modele ilgili özellikleri eklemek ve son olarak kontrolcüdeki ModelState.IsValid numarasını çağırarak doğrulama sonuçlarını almak anlamına gelir. ModelState olmadan, arka uç parametre doğrulamamız birçok if yargısı yazmak zorunda kalabilir.

Gereksinimler: POST parametrelerinin filtredeki model doğrulamasını geçip geçmediğini değerlendiriyoruz, doğrulamayı geçmiyorlarsa, doğrulama geçtikten sonra doğrudan birleşik json hata mesajı döndürürüz ve ardından kontrolör yöntemine gireriz, bunun avantajı şudur:Her kontrolciyi yargılayıp tekrar eden işler yapmamıza gerek yok

ModelState model doğrulamasını gözden geçirin

webapi ModelState.IsValid model validation
https://www.itsvse.com/thread-3809-1-1.html

MVC ASP.NET model alanlarını manuel olarak doğrulayın
https://www.itsvse.com/thread-9500-1-1.html

Asp.net Çekirdek Model Veri Doğrulaması
https://www.itsvse.com/thread-9016-1-1.html

İnceleme filtreleri

mvc custom filter ActionFilterAttribute class

https://www.itsvse.com/thread-2609-1-1.html

ASP.NET Core hakkındaki bilginizi gözden geçirin

ASP.NET Core (iii) ActivatorUtilities kullanarak dinamik örnekler oluşturun
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Çekirdek (2) Uygulamayı kodla yeniden başlat
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis önbellekleme kullanır
https://www.itsvse.com/thread-9393-1-1.html

Sistem, ValidationAttribute'u önceden tanımlar.
ValidationAttribute'dan miras alan bir dizi doğrulama özelliği System.ComponentModel.DataAnnotations isim alanı altında tanımlanır.

  • RequiredAttribute: Gerekli veri alanlarını doğrulamak için kullanılır.
  • RangeAttribute: Bir sayısal alanın değerinin belirlenen aralık içinde olduğunu doğrulamak için kullanılır.
  • StringLengthAttribute: Hedef alanın dizi uzunluğunun belirtilen aralık içinde olduğunu doğrulamak için kullanılır.
  • MaxLengthAttribute/MinLengthAttribute: Karakter/dizi sözlüğünün uzunluğunun belirtilen üst/alt sınırdan az veya daha büyük olup olmadığını doğrulamak için kullanılır.
  • RegularExpressionAttribute: Dizi alanının formatının belirtilen düzenli ifadeyle eşleşip eşleşmediğini doğrulamak için kullanılır.
  • CompareAttribute: Hedef alanın değerinin başka bir alanın değeriyle tutarlı olup olmadığını doğrulamak için kullanılır ve kullanıcı kayıt senaryosunda şifreyi iki kez girmenin tutarlılığını doğrulamak için kullanılabilir.
  • CustomValidationAttribute: Hedef üyeyi doğrulamak için bir doğrulama tipi ve doğrulama yöntemi belirtir.



Elbette, doğrulama kurallarını ValidationAttribute sınıfını devralarak ve ilgili yöntemi uygulayarak da tanımlayabiliriz.

Önce renderlere bakalım, hata mesajı arka plan arayüzü tarafından şu şekilde döner:



Nesne Model Kodu:

ModelStateFilter filtre kodu:



IsAjaxRequest kodu şu şekildedir:

Son olarak, Startup dosyasına özel bir filtre ekleyin, kod şu şekildedir:



(Son)




Önceki:HtmlAgilityPack rolluplar için HTML ipuçlarını ayrıştırıyor
Önümüzdeki:.NET Core, Baidu PaddleOCR'i çağırarak görüntüleri ve metinleri tanır
2021-9-22 tarihinde yayınlandı 20:40:25 |
Öğrenmeyi öğren...
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com