Я ищу способ проверки моей модели с структурой сущностей , и с validationResult я получаю его, но только с одним классом, что вы предлагаете вызвать другим классом и проверить атрибут этого класса?
Пример:
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (ValorFacturado < (VozCargoAdicional + DatosCargoAdicional + OtrosCargosAdicional + CargoReposicionArmetales + CargoReposicionUsuario))
{
yield return new ValidationResult("Valor facturado es menor", new[] { "El valor es mayor que factura" });
}
К этой сумме я должен добавить поле из другой модели.
Я думаю, что твоя проблема состоит в том, что ты не определил хорошо твою модель. Модель в Asp.NET MVC может быть составленной нескольких моделей в свою очередь. У концепций организации и модели в этой архитектуре нет из-за quГ© совпадать. У тебя может быть организация Клиент например с 25 свойствами, но потом ClienteModel твоего Вида может содержать 5 из этих полей. Окончательно, модель в мою манеру видеть, - одна proyecciГіn одной или нескольких организаций. Ты можешь создавать asГ - твой model, чтобы мочь решать твою проблему
public class MiModeloCompuesto
{
public MiModelo1 Modelo1 { get; set; }
public MiModelo2 Modelo2 { get; set; }
}
Тогда с этим примером, ты можешь осуществлять ее validaciГіn MiModeloCompuesto и соглашаться на свойства Modelo1 и Modelo2. Я надеюсь заставить меня понимать. Привет
Привет способ санкционировать данные в твоей организации дела одна opciГіn serГ, - в который ты использовал Флуент Валидатион
JeremySkinner/FluentValidation
AcГЎ, у тебя есть один cГіdigo примера
public class ProductoValidator : AbstractValidator<Producto>
{
public ProductoValidator()
{
CascadeMode = CascadeMode.Continue;
RuleFor(x => x.Nombre)
.NotEmpty().WithMessage("El Nombre no puede estar vacío")
.Must(x => x.Length > 3).WithMessage("El Nombre, debe tener mas de tres caracteres")
.Must(x => x.Length < 81).WithMessage("El Nombre, debe tener menos de 81 caracteres");
RuleFor(x => x.CategoriaId)
.NotNull().WithMessage("Favor de asignar un elemento")
.NotEqual(0).WithMessage("Debe seleccionar Categoría");
RuleFor(x => x.LineaId)
.NotNull().WithMessage("Favor de asignar un elemento")
.NotEqual(0).WithMessage("Debe seleccionar la Linea");
RuleFor(x => x.ModeloId)
.NotNull().WithMessage("Favor de asignar un elemento")
.NotEqual(0).WithMessage("Debe seleccionar un Modelo");
RuleFor(x => x.MarcaId)
.NotEqual(0).WithMessage("Debe seleccionar una Marca")
.NotNull().WithMessage("Favor de asignar un elemento");
}
}
Другой пример
public class ProveedorValidator : AbstractValidator<Proveedor>
{
public ProveedorValidator()
{
// Indicamos que la validación continue aún y cuando una de ellas falle.
CascadeMode = CascadeMode.Continue;
RuleFor(x => x.RazonSocial)
.NotEmpty().WithMessage("La Razón Social no puede estar vacía")
.Must(x => x.Length > 3).WithMessage("La Razón Social, debe tener mas de tres caracteres")
.Must(x => x.Length < 81).WithMessage("La Razón Social, debe tener menos de 81 caracteres");
RuleFor(x => x.DocumentoIdentidad)
.NotNull().WithMessage("Favor de asignar un elemento")
.NotEqual((EnumDocumentoEdentidad)Convert.ToInt32(-1)).WithMessage("Debe seleccionar Documento de Identidad");
When(x => x.DocumentoIdentidad == EnumDocumentoEdentidad.DNI, () =>
{
RuleFor(x => x.NroDocumento)
.NotNull()
.NotEmpty().WithMessage("El Nro. de DNI, no puede estar vacía")
.Length(8).WithMessage("El Nro. de DNI, debe de tener una longitud de '8' caracteres")
.Must(x => x != "11111111" && x != "22222222"
&& x != "33333333" && x != "44444444"
&& x != "55555555" && x != "66666666"
&& x != "77777777" && x != "88888888"
&& x != "99999999").WithMessage("El Nro. DNI, no tiene un formato valido");
});
When(x => x.DocumentoIdentidad == EnumDocumentoEdentidad.RUC, () =>
{
RuleFor(x => x.NroDocumento)
.NotNull()
.NotEmpty().WithMessage("El Nro. de RUC, no puede estar vacía")
.Length(11).WithMessage("El Nro. de RUC, debe de tener una longitud de '11' caracteres")
.Must(x => x != "11111111111" && x != "22222222222"
&& x != "33333333333" && x != "44444444444"
&& x != "55555555555" && x != "66666666666"
&& x != "77777777777" && x != "88888888888"
&& x != "99999999").WithMessage("El Nro. RUC, no tiene un formato valido");
});
}
}
Ты можешь приспосабливать это к твоей необходимости.