Реализация простой проверки на стороне клиента в C # ASP.NET Core 2.2 - PullRequest
0 голосов
/ 09 февраля 2019

Добавление простой проверки на стороне клиента в C # ASP.NET Core 2.2

Я прочитал MS документы по проверке и решил, что лучше всего применять проверку на стороне клиента,Однако в представленном примере они показывают что-то с jQuery, и у меня сложилось впечатление, что jQuery уже немного устарела.Кроме того, мы избалованы хорошими инструментами от MS, которые автоматически сделают что-то для нас.(Я думал, что span с атрибутом asp-validation-for и div с атрибутом asp-validation-summary подразумевают, что магия будет там. Это не так, как оказалось.)

Мой код такой, как показано ниже.

<div class="row">
  <div class="col-md-4">
    <form asp-controller="Security"
          asp-action="Register"
          method="post">
      <div asp-validation-summary="ModelOnly" class="text-danger"></div>
      <div class="form-group">
        <label asp-for="@Model.Email" class="control-label"></label>
        <input asp-for="@Model.Email" class="form-control" />
        <span asp-validation-for="@Model.Email" class="text-danger"></span>
      </div>
      <div class="form-group">
        <label asp-for="@Model.Info" class="control-label"></label>
        <input asp-for="@Model.Info" class="form-control" />
        <span asp-validation-for="@Model.Info" class="text-danger"></span>
      </div>
      <div class="form-group">
        <input type="submit" value="Send" class="btn btn-primary" />
      </div>
    </form>
  </div>
</div>

Я хотел бы знать, чего мне не хватает, чтобы проверка работала корректно (т.е. получение сообщения об ошибке, если не обаполя заполняются при отправке формы, а также при заполнении формы отменяется).В качестве альтернативы, из-за того, что я упускаю из виду, я хотел бы получить подсказку по соответствующим поисковым словам.Обратите внимание, что я ищу только визуальные элементы: сообщения на стороне клиента, никакого отношения к внутреннему обработчику ввода.

Я видел некоторые вопросы по этому вопросу, но так как те, кажется, не имеют одобренного разрешения, я чувствую, что лучше спросить, чтобы сделать все правильно, а не игру в догадки.

1 Ответ

0 голосов
/ 12 февраля 2019

Вам необходимо добавить ссылку на файл проверки.Проверьте, есть ли у вас _ValidationScriptsPartial.cshtml в вашей папке Views / Shared.

<environment include="Development">
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment exclude="Development">
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/jquery.validate.min.js"
        asp-fallback-src="~/Identity/lib/jquery-validation/dist/jquery.validate.min.js"
        asp-fallback-test="window.jQuery && window.jQuery.validator"
        crossorigin="anonymous"
        integrity="sha384-rZfj/ogBloos6wzLGpPkkOr/gpkBNLZ6b6yLy4o+ok+t/SAKlL5mvXLr0OXNi1Hp">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validation.unobtrusive/3.2.9/jquery.validate.unobtrusive.min.js"
        asp-fallback-src="~/Identity/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
        asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
        crossorigin="anonymous"
        integrity="sha384-ifv0TYDWxBHzvAk2Z0n8R434FL1Rlv/Av18DXE43N/1rvHyOG4izKst0f2iSLdds">
</script>
</environment>

Добавьте приведенный ниже код,

@section Scripts {
    <partial name="_ValidationScriptsPartial" />
}
...