Язык программирования 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
.
<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>
Поделиться с друзьями: