#c# #asp.net-mvc
#c# #asp.net-mvc
Вопрос:
У меня есть такая модель:
public class SignUpModel
{
[Required, DisplayName(@"Particulars/Salutation")]
public short Salutation { get; set; }
public IEnumerable<SalutationOption> SalutationOptions { get; set; }
[Required, DisplayName("Particulars/FirstName")]
public string FirstName { get; set; }
[Required, Display(Name = "Particulars/LastName")]
public string LastName { get; set; }
[Required, DataType(DataType.EmailAddress), Display(Name = "Particulars/Email")]
public string Email { get; set; }
[Required, DataType(DataType.EmailAddress), Compare("Email"), Display(Name = "Particulars/EmailConfirmation")]
public string EmailConfirmation { get; set; }
}
Теперь, на мой взгляд, я хочу опубликовать ошибки проверки (также на стороне клиента) с помощью @Html.ValidationMessageFor
.
<div class="section-field">
<div class="form-group">
@Html.LabelFor(model => model.Email, new { @class = "control-label required" })
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { autocomplete = "off" } })
@Html.ValidationMessageFor(x=>x.Email);
</div>
</div>
<div class="section-field">
<div class="form-group">
@Html.LabelFor(model => model.EmailConfirmation, new { @class = "control-label required" })
@Html.EditorFor(model => model.EmailConfirmation, new { htmlAttributes = new { autocomplete = "off" } })
@Html.ValidationMessageFor(x=>x.EmailConfirmation);
</div>
</div>
Но в Html.ValidationMessageFor
я хочу показывать только такие вещи, как «недопустимый адрес электронной почты» или «оба письма должны совпадать».
Я не хочу показывать сообщение о том, что поля обязательны, поскольку все они обязательны — и они обведены красной каймой.
Возможно ли это как-то? Пытался реализовать пользовательский HtmlHelper, но он ничего не фильтрует на стороне клиента.
Комментарии:
1. Вы пробовали
[Required(ErrorMessage = "Your Custom Message")]
?2. @Izzy да, дело не в этом. Я просто хочу отфильтровать их при проверке, чтобы не показывать их — не изменяя сообщение об ошибке.
Ответ №1:
Итак, я исправил это просто с помощью css.
Я добавляю класс required-validation
в недопустимые Required
проверки:
<p class="validation-error required-validation">The field 'FirstName' is required</p>
и добавил в мой custom.css
p.validation-error.required-validation {
display: none;
}
Приветствуются другие идеи о том, как справиться с этим с помощью ASP 🙂