Чтение онлайн

ЖАНРЫ

Язык программирования C#9 и платформа .NET5
Шрифт:

<option value="MX">Mexico</option>

<option selected="selected" value="CA">Canada</option>

<option value="US">USA</option>

</select>

Вспомогательные функции дескрипторов для проверки достоверности

Вспомогательные функции дескрипторов для сообщения проверки достоверности и для сводки по проверке достоверности в точности отражают вспомогательные функции HTML с именами

Html.ValidationMessageFor
и
Html.ValidationSummaryFor
.
Первая применяется к HTML-дескриптору
<span>
для отдельного свойства модели, а вторая — к HTML-дескриптору
<div>
для целой модели. Сводка по проверке достоверности поддерживает варианты
Аll
(все ошибки),
ModelOnly
(ошибки только модели, но не свойств модели) и
None
(никаких ошибок).

Вспомните вспомогательные функции дескрипторов для проверки достоверности из

EditorTemplate
в файле
Car.cshtml
(выделены полужирным):

<div asp-validation-summary="All" class="text-danger"></div>

<div class="form-group">

<label asp-for="PetName" class="col-form-label"></label>

<input asp-for="PetName" class="form-control" />

<span asp-validation-for="PetName" class="text-danger"></span>

</div>

<div class="form-group">

<label asp-for="MakeId" class="col-form-label"></label>

<select asp-for="MakeId" class="form-control" asp-items="ViewBag.MakeId"></select>

</div>

<div class="form-group">

<label asp-for="Color" class="col-form-label"></label>

<input asp-for="Color" class="form-control"/>

<span asp-validation-for="Color" class="text-danger"></span>

</div>

Эти вспомогательные функции дескрипторов будут отображать ошибки модели, возникшие во время привязки и проверки достоверности, как показано на рис. 31.3.

< image l:href="#"/>

Вспомогательная функция дескриптора для среды

Вспомогательная функция дескриптора для среды (

<environment>
) обычно используется для условной загрузки файлов JavaScript и CSS (или подходящей разметки) на основе среды, в которой запущен сайт. Откройте частичное представление
_Head.cshtml
и модифицируйте разметку следующим образом:

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>@ViewData["Title"] - AutoLot.Mvc</title>

<environment include="Development">

<link rel="stylesheet" href="#" />

</environment>

<environment exclude="Development">

<link rel="stylesheet" href="#" />

</environment>

<link rel="stylesheet" href="#" />

В

первой вспомогательной функции дескриптора для среды применяется атрибут
include="Development"
, чтобы включить содержащиеся файлы, когда среда установлена в
Development
. В таком случае загружается неминифицированная версия Bootstrap. Во второй вспомогательной функции дескриптора для среды используется атрибут
exclude="Development"
, чтобы задействовать содержащиеся файлы, когда среда отличается от
Development
. В таком случае загружается минифицированная версия Bootstrap. Файл
site.css
остается тем же самым в среде
Development
и других средах, поэтому он загружается за пределами вспомогательной функции дескриптора для среды.

Теперь модифицируйте частичное представление

_JavaScriptFiles.cshtml
, как показано ниже (обратите внимание, что файлы в разделе
Development
больше не имеют расширения
.min
):

<environment include="Development">

<script src="~/lib/jquery/dist/jquery.js"></script>

<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>

</environment>

<environment exclude="Development">

<script src="~/lib/jquery/dist/jquery.min.js"></script>

<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>

</environment>

<script src="~/js/site.js" asp-append-version="true"></script>

Вспомогательная функция дескриптора для ссылки

Вспомогательная функция дескриптора для ссылки (

<link>
) имеет атрибуты, применяемые с локальными и удаленными файлами. Атрибут
asp-append-version
, используемый с локальными файлами, добавляет хеш-значение для файла как параметр строки запроса в URL, который отправляется браузеру. При изменении файла изменяется и хеш-значение, обновляя посылаемый браузеру URL. Поскольку ссылка изменилась, браузер очищает кеш от этого файла и перезагружает его. Модифицируйте дескрипторы ссылок для
bootstrap.css
и
site.css
в файле
_Head.cshtml
следующим образом:

<environment include="Development">

<link rel="stylesheet" href="#"

asp-append-
version="true"/>

</environment>

<environment exclude="Development">

<link rel="stylesheet" href="#" />

</environment>

Поделиться с друзьями: