Próbuję uzyskać wartość innej usługi z metody GetClientValidationRules
niestandardowego atrybutu sprawdzania poprawności.Uzyskaj wartość innej właściwości z ModelMetaData
Oto moja próba (na podstawie Darin's response na inne pytanie):
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(
ModelMetadata metadata, ControllerContext context)
{
var parentType = metadata.ContainerType;
var parentMetaData = ModelMetadataProviders.Current
.GetMetadataForType(null, parentType);
var parentMetaData = ModelMetadataProviders.Current
.GetMetadataForProperties(context.Controller.ViewData.Model, parentType);
var otherProperty = parentMetaData.FirstOrDefault(p =>
p.PropertyName == "SomeProperty");
var otherValue = otherProperty.Model;
var rule = new ModelClientValidationRule
{
ValidationType = "customvalidatorattribute",
ErrorMessage = this.FormatErrorMessage(metadata.GetDisplayName()),
};
yield return rule;
}
Jednak gdy próbuje ustawić otherValue
, otrzymuję:
System.Reflection.TargetException: obiekt nie dopasuj typ celu.
jak to rozwiązałeś. Mam ten sam problem, wszelkie sugestie? – TechnicalSmile
Witam, jeśli tylko rozwiążesz ten problem, proszę? Mam taki sam problem, proszę? – duongthaiha