У меня есть следующий код в моей модели для почтового индекса:
[RegularExpression("^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y])))( {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2})?))$", ErrorMessage = "Please enter valid postcode")]
[Required(ErrorMessage = "Post Code is required")]
[StringLength(20)]
[Column(TypeName = "VARCHAR")]
public string Postcode { get; set; }
На мой взгляд, у меня есть выпадающий список, содержащий страны Великобритании и вариант для не Великобритании. Когда пользователь выбирает non uk, я не хочу, чтобы регулярное выражение применялось к полю почтового индекса:
<div class="form-group">
@Html.DropDownListFor(m => m.FormDutyHolder.CountryId, new SelectList(Model.Countries, "CountryId", "CountryName"), "Please select Country", new { title = "Country options", @class = "form-control my-form-inline" })
@Html.ValidationMessageFor(m => m.FormDutyHolder.CountryId)
</div>
@Html.TextBoxFor(m => m.FormDutyHolder.Postcode, new { title = "Postcode", @class = "form-control", placeholder = "Postcode" })
@Html.ValidationMessageFor(m => m.FormDutyHolder.Postcode)
Это должно происходить на стороне клиента, так как я использую модальные и не хочу страницу refre sh, поэтому я не использую атрибут Custom Validation.
Заранее спасибо.