无效时,不显示ValidationMessage For

Oma*_*uez 2 c# blazor blazor-webassembly

我在 Blazor 中使用自定义验证,验证执行正确,但是当它无效时,不会显示ValidationMessage For ,我尝试添加 ValidationSummary,但这里确实出现 ErrorMessage。我希望有人能支持我

\n

在此输入图像描述

\n
 public class Domicilio\n    {\n        public int Id { get; set; }\n        public DateTimeOffset FechaRegistro { get; set; }\n        [Required(ErrorMessage ="Favor de capturar la calle")]\n        public string Calle { get; set; }\n        [Required(ErrorMessage = "Favor de capturar el n\xc3\xbamero exterior")]\n        public string NumeroExt { get; set; }\n        public string NumeroInt { get; set; }\n        [Range(1,int.MaxValue, ErrorMessage="Favor de seleccionar la colonia")]\n        public int CodigoPostalId { get; set; }\n        public CatCodigosPostales CodigoPostal { get; set; }\n        [OtroCPValidation]\n        public string OtroCodigoPostal { get; set; }\n        public string OtraColonia { get; set; }\n        public string OtraCiudad { get; set; }\n        public string OtroEstado { get; set; }\n        [Range(1,int.MaxValue,ErrorMessage="Favor seleccione el pa\xc3\xads")]\n        public int PaisId { get; set; }\n        public CatPaises Pais { get; set; }\n        public string Observaciones { get; set; }\n    }\n\npublic class OtroCPValidation : ValidationAttribute\n    {\n        protected override ValidationResult IsValid(object value, ValidationContext validationContext)\n        {\n            var domicilio = (Domicilio)validationContext.ObjectInstance;\n            if (domicilio.Pais.Pais != "M\xc3\xa9xico" && domicilio.OtroCodigoPostal == null)\n            {\n                return new ValidationResult($"Captura el c\xc3\xb3digo postal extranjero");\n            }\n                \n            else\n                return ValidationResult.Success;\n        }\n    }\n\n<EditForm Model="Domicilio" OnValidSubmit="OnValidSubmit" style="height:75vh" class="row justify-content-center align-items-center">\n    <DataAnnotationsValidator />\n<div class="form-group">\n                            <label>C\xc3\xb3digo postal</label>\n                            <div>\n                                <SfMaskedTextBox Placeholder="C\xc3\xb3digo postal" Mask="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" @bind-Value="@Domicilio.OtroCodigoPostal"></SfMaskedTextBox>\n                                <ValidationMessage For="@(() => Domicilio.OtroCodigoPostal)" />\n                            </div>\n                        </div>\n</EditForm>\n
Run Code Online (Sandbox Code Playgroud)\n

Oma*_*uez 8

我能够解决我遇到的问题,我在 IsValid 方法的返回中缺少重载,我将返回保留为应有的样子,我只需要进行更改。

return new ValidationResult(ErrorMessage, new[] { validationContext.MemberName});
Run Code Online (Sandbox Code Playgroud)