У меня есть эти две радиокнопки для подписки.Если клиент выбирает переключатель «Да», то я показываю текстовое поле ввода адреса электронной почты.Если клиент выбирает «да», то текстовое поле адреса электронной почты обязательно.Как добавить условную проверку внутри модели?
Модель:
public class CustomerModel
{
[Required]
public bool Subscribe {get; set;}
[RequiredIfYes]
public string Email {ger; set;}
}
Пользовательский класс проверки:
public class RequiredIfYesAttribute : Attribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value == "Yes")
{
return ValidationResult.Success;
}
else
{
return new ValidationResult("Email is Required.");
}
}
}
Просмотр:
<div class="form-group col-md-12 ">
<label class="required" for="subscribe">Email Subsciption</label>
<span >Yes : <input type="radio" value="Yes" name="Subscribe" id="chkYes" onclick="ShowHideDiv()" /></span>
<span >No : <input type="radio" value="No" name="Subscribe" id="chkNo" onclick="ShowHideDiv()" /></span>
@Html.ValidationMessageFor(model => model.Subscribe)
</div>
<div id="dvtext" style="display: none">
<label for="email" class="required">Enter Email</label>
<div style="width:300px;">
@Html.TextBoxFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
</div>