Menggunakan IValidatableObject untuk melaksanakan pengesahan bersyarat dalam ASP.NET MVC
Pengesahan bersyarat membolehkan anda menentukan peraturan pengesahan berdasarkan syarat tertentu dalam model anda. Dalam ASP.NET MVC, anotasi data menyediakan cara yang mudah untuk mentakrifkan peraturan ini, tetapi mereka tidak mempunyai fleksibiliti untuk senario bersyarat yang lebih kompleks.
Pertimbangkan model dan paparan berikut di mana kita mahu secara bersyarat memerlukan sifat "Senior.Description" berdasarkan pemilihan sifat "IsSenior":
<code class="language-csharp">public class Person : IValidatableObject { [Required] public string Name { get; set; } public bool IsSenior { get; set; } public Senior Senior { get; set; } public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (IsSenior && string.IsNullOrEmpty(Senior.Description)) yield return new ValidationResult("必须提供描述。"); } }</code>
Dalam ASP.NET MVC 3 (dan lebih tinggi), anda boleh memanfaatkan antara muka IValidatableObject dan melaksanakan kaedah Validate untuk mengendalikan pengesahan bersyarat dengan lebih cekap. Dalam kaedah Pengesahan, anda boleh menentukan peraturan bersyarat dan mengembalikan objek ValidationResult untuk sebarang kegagalan pengesahan.
Dengan melaksanakan kaedah Sahkan seperti yang ditunjukkan dalam coretan kod, kami menambahkan peraturan pengesahan bersyarat yang memerlukan sifat "Senior.Description" dengan berkesan apabila sifat "IsSenior" ditetapkan kepada benar. Pendekatan ini menyediakan cara yang lebih bersih dan lebih fleksibel untuk melaksanakan pengesahan bersyarat dalam aplikasi ASP.NET MVC.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengesahan Bersyarat dalam ASP.NET MVC Menggunakan IValidatableObject?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!