Устранение неполадок проверки ASP.Net MVC?Электронная почта подтверждает, что телефоны не - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть страница со следующими загружаемыми библиотеками:

<script src="/Scripts/jquery-3.3.1.js"></script>
<script src="/Scripts/jquery-migrate-3.0.0.js"></script>
<script src="/Scripts/jquery-ui-1.12.1.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/expressive.annotations.validate.js"></script>

Форма имеет несколько полей, которые необходимо проверить.

  <div class="row">
    <div class="small-12 large-4 column end">
        <label class="label radius" for="PrimaryPhone">Home Phone</label>
        <input class="text-box single-line" id="PrimaryPhone" name="PrimaryPhone" placeholder="(###) ###-####" type="tel" value="" />
        <span class="field-validation-valid" data-valmsg-for="PrimaryPhone" data-valmsg-replace="true"></span>
    </div>
</div>
<div class="row">
    <div class="small-12 large-4 column en">
        <label class="label radius" for="OtherPhone">Other Phone</label>
        <input class="text-box single-line" id="OtherPhone" name="OtherPhone" placeholder="(###) ###-####" type="tel" value="" />
        <span class="field-validation-valid" data-valmsg-for="OtherPhone" data-valmsg-replace="true"></span>
    </div>
</div>
<div class="row">
    <div class="small-12 large-4 column end">
        <label class="label radius" for="WorkPhone">Work Phone</label>
        <input class="text-box single-line" id="WorkPhone" name="WorkPhone" placeholder="(###) ###-####" type="tel" value="" />
        <span class="field-validation-valid" data-valmsg-for="WorkPhone" data-valmsg-replace="true"></span>
    </div>
</div>
<div class="row">
    <div class="medium-6 small-12 end column">
        <label class="label radius" for="EmailAddress">Email Address</label>
        <input class=" text-box single-line" id="EmailAddress" name="EmailAddress" type="email" value="" />
        <span class="field-validation-valid text-danger" data-valmsg-for="EmailAddress" data-valmsg-replace="true"></span>
    </div>
</div>

Проверка основана на ViewModel

    [Display(Name = "Email Address")]
    [DataType(DataType.EmailAddress)]
    [EmailAddress(ErrorMessage ="Invalid Email Address")]
    [RegularExpression(@"([\w\.\-_]+)?\w+@[\w-_]+(\.\w+){1,}", ErrorMessage = "Invalid Email Address")]
    public string EmailAddress { get; set; } [Display(Name = "Other Phone")]

    [DataType(DataType.PhoneNumber)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:###-###-####}")]
    [RequiredIf("PrimaryPhone==null && WorkPhone==null", ErrorMessage ="You must enter at least one phone number.")]
    [RegularExpression(@"(?!(?:1-)?(\\$|#|800|833|844|855|866|877|888|900|0))\(?[\\s.-]*([0-9]{3})?[\\s.-]*\)?[\\s.-]*[0-9]{3}[\\s.-]*[0-9]{4}", ErrorMessage = "Please enter a valid phone number")]
    public string OtherPhone { get; set; }

Адрес электронной почты проверяется правильно, а телефоны - нет. Также перестал работать атрибут удаленной проверки.

**** добавлен фрагмент кода бритвы, который генерирует выше

    @Html.LabelFor(model => model.PrimaryPhone, htmlAttributes: new { @class = "label radius" })
        @Html.EditorFor(model => model.PrimaryPhone, new { htmlAttributes = new { placeholder = "(###) ###-####" } })
        @Html.ValidationMessageFor(model => model.PrimaryPhone)

1 Ответ

0 голосов
/ 18 сентября 2018

Частичная установка / удаление Expressive Annotations привела к удалению поставщика проверки по умолчанию без добавления замены.Не уверен, почему произошла частичная установка.Я только что добавил подходящего провайдера, и все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...