Я пытаюсь условно проверить поле в рамках ASP.net Core MVC. У меня есть две радиопроизводительные кнопки. Если я выберу Да (для владения), я хочу сделать необходимое поле (выпадающее вниз (выпадает в действие) < /p>
Однако, как бы я ни старался, то значение, которое нужно подтвердить, всегда поставляется с поля деятельности, а не из поля собственности («n \ a» вместо «да») < /p>
может кто -то, что я делаю неправильно < /p> (CHTML) < /p>
@Html.RadioButtonFor(model => model.BIS232Request.JSONData.OwnershipActivity.Ownership, "Yes", new { id = "OwnershipAnswer_true", onclick = "displayOwnershipFieldsRow(true)" })
Yes
@Html.RadioButtonFor(model => model.BIS232Request.JSONData.OwnershipActivity.Ownership, "No", new { id = "OwnershipAnswer_false", onclick = "displayOwnershipFieldsRow(false)" })
No
@Html.ValidationMessage("OwnershipAnswer")
Please Select
Manufacturer
Distributor
Exporter
Importer
Other
@Html.ValidationMessage("OwnershipAnswerActivity")
< /code>
Модель < /p>
[Required]
public string Ownership { get; set; }
[RequiredIf("Ownership", "OwnershipAnswer_true", "Activity is required if Ownership is selected")]
public string Activity { get; set; }
public class RequiredIfAttribute : ValidationAttribute
{
private String PropertyName { get; set; }
private String ErrorMessage { get; set; }
private Object DesiredValue { get; set; }
public RequiredIfAttribute(String propertyName, Object desiredvalue, String errormessage)
{
this.PropertyName = propertyName;
this.DesiredValue = desiredvalue;
this.ErrorMessage = errormessage;
}
protected override ValidationResult IsValid(object value, ValidationContext context)
{
Object instance = context.ObjectInstance;
Type type = instance.GetType();
Object proprtyvalue = type.GetProperty(PropertyName).GetValue(instance, null);
if (proprtyvalue.ToString() == DesiredValue.ToString() && value == null)
{
return new ValidationResult(ErrorMessage);
}
return ValidationResult.Success;
}
}
Подробнее здесь: https://stackoverflow.com/questions/523 ... requiredif