Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Pengesahan Tersuai untuk Gabungan Panjang Harta dalam ASP.NET MVC?

Bagaimana untuk Melaksanakan Pengesahan Tersuai untuk Gabungan Panjang Harta dalam ASP.NET MVC?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-16 19:32:11823semak imbas

How to Implement Custom Validation for Combined Property Length in ASP.NET MVC?

Gunakan anotasi data untuk melaksanakan pengesahan tersuai bagi panjang atribut gabungan dalam ASP.NET MVC

Sifat pengesahan tersuai memberikan fleksibiliti apabila mengesahkan berbilang sifat secara serentak. Dalam ASP.NET MVC, anda boleh mencipta sifat pengesahan tersuai menggunakan kelas asas ValidationAttribute dan menerapkannya pada sifat dalam model menggunakan atribut [Validate].

Atribut pengesahan tersuai untuk gabungan panjang atribut

Untuk mengesahkan panjang gabungan berbilang sifat rentetan, anda boleh mencipta sifat pengesahan tersuai seperti ini:

<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) + Convert.ToString(value).Length;

        if (totalLength < MinLength)
        {
            return new ValidationResult(ErrorMessageString);
        }

        return ValidationResult.Success;
    }
}</code>

Gunakan dalam model

Untuk menggunakan pengesahan ini pada model anda, anda boleh menghiasi salah satu sifatnya dengan atribut [Validate]:

<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>

Sifat pengesahan ini memastikan bahawa panjang gabungan sifat Foo, Bar dan Baz adalah lebih besar daripada atau sama dengan panjang minimum yang ditentukan (20 dalam contoh ini). Jika pengesahan gagal, mesej ralat yang sesuai dipaparkan dalam ringkasan pengesahan (seperti yang ditakrifkan dalam parameter ErrorMessage).

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengesahan Tersuai untuk Gabungan Panjang Harta dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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