Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengesahkan Panjang Gabungan Pelbagai Sifat dalam ASP.NET MVC menggunakan Anotasi Data?

Bagaimana untuk Mengesahkan Panjang Gabungan Pelbagai Sifat dalam ASP.NET MVC menggunakan Anotasi Data?

DDD
Lepaskan: 2025-01-16 19:26:10
asal
676 orang telah melayarinya

How to Validate the Combined Length of Multiple Properties in ASP.NET MVC using Data Annotations?

Gunakan anotasi data untuk mengesahkan panjang gabungan berbilang atribut dalam ASP.NET MVC

Dalam ASP.NET MVC, adalah amalan biasa untuk menggunakan anotasi StringLength untuk mengesahkan panjang sifat tunggal. Walau bagaimanapun, terdapat situasi di mana anda perlu mengesahkan panjang gabungan berbilang sifat. Artikel ini meneroka pendekatan yang mematuhi MVC untuk mencapai matlamat ini menggunakan anotasi data.

Atribut pengesahan tersuai

Untuk mengesahkan panjang gabungan berbilang sifat, anda boleh membuat sifat pengesahan tersuai. Berikut ialah contoh:

<code class="language-csharp">public class CombinedMinLengthAttribute : ValidationAttribute
{
    public CombinedMinLengthAttribute(int minLength, params string[] propertyNames)
    {
        this.PropertyNames = propertyNames;
        this.MinLength = minLength;
    }

    public string[] PropertyNames { get; private set; }
    public int MinLength { get; private set; }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var properties = this.PropertyNames.Select(validationContext.ObjectType.GetProperty);
        var values = properties.Select(p => p.GetValue(validationContext.ObjectInstance, null)).OfType<string>();
        var totalLength = values.Sum(x => x?.Length ?? 0) + (value?.ToString()?.Length ?? 0); //处理空值情况

        if (totalLength < MinLength)
        {
            return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
        }

        return ValidationResult.Success;
    }
}</code>
Salin selepas log masuk

Cara menggunakan

Untuk menggunakan sifat tersuai ini, anda boleh menggunakannya untuk menghias harta dalam model paparan anda:

<code class="language-csharp">public class MyViewModel
{
    [CombinedMinLength(20, "Bar", "Baz", ErrorMessage = "Foo, Bar 和 Baz 属性的组合最小长度应大于 20")]
    public string Foo { get; set; }
    public string Bar { get; set; }
    public string Baz { get; set; }
}</code>
Salin selepas log masuk

Apabila model disahkan, kaedah IsValid sifat tersuai dipanggil dan panjang gabungan sifat yang ditentukan disahkan terhadap panjang minimum yang ditentukan bersama-sama dengan nilai sifat yang dihias. Kod yang dipertingkatkan menambah pengendalian nilai nol dan mengelakkan potensi NullReferenceException.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Panjang Gabungan Pelbagai Sifat dalam ASP.NET MVC menggunakan Anotasi Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan