Требуемый атрибут для типа значения Bool, когда используется в качестве флажки

StackOverflow https://stackoverflow.com/questions/2208444

  •  18-09-2019
  •  | 
  •  

Вопрос

Я сталкиваюсь с проблемой, когда у меня есть простая форма добавления/редактирования и использование проверки на стороне клиента (jquery/microsoftmvcjqueryvalidation.js), которая генерируется из аннотаций данных и включена клиентская сторона, вызывая следующее в моем представлении:

<% Html.EnableClientValidation(); %>

Похоже, это отлично работает для большинства элементов, однако у меня есть экземпляр, когда у меня есть логическое свойство, которое используется в качестве флажести с использованием:

<%= Html.EditorFor(model => model.Chargeable)%>

Который может быть либо истинным/ложным (тик -тика/распущен).

Поскольку BOOL является типом значения, и не является недействительным, он отображается в качестве требуемого свойства и отображает ошибку (сторону клиента), когда форма отправляется в чтение «Требуется платное поле». Однако, как HTML, который является, который является, который является, который является, который является, который является HTML, который является HTML, который является HTML, который является HTML, который является HTML. Сгенерировано две части (как флажок, так и скрытое значение). Он пропустит проверку пост обратно.

После просмотра исходного кода MVC 2 мне на данный момент удалось поместить «быстрое и грязное» исправление, которое должно установить:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

У кого -нибудь еще есть какие -либо идеи или предложения о том, как я могу обойти это?

IMO, я не думаю, что MVC должен установить необходимый валидатор на стороне клиента для флажков, отображаемых с использованием методов html.editorfor/html.checkbox (для).

Примечание: я использую ASP.NET MVC 2 RC2 и MicrosoftmvcjqueryValidation.js из соответствующего выпуска фьючерсов MVC.

Это было полезно?

Решение

Я полагаю, что самый простой способ обработки-это вызов правила («Удалить», [правила]) в элементах (в основном флажок), которые я хочу удалить проверку на стороне клиента из:

<script type="text/javascript">
  $(document).ready(function() {
    $('#Chargeable').rules('remove', 'required');
  });
</script>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top