new SelectListItem { Value = "CA", Text = "Canada" },
new SelectListItem { Value = "US", Text = "USA" },
};
Следующая разметка будет визуализировать дескриптор
<select>
с надлежащими дескрипторами
<option>
:
<select asp-for="Country" asp-items="Model.Countries"></select>
Если значением свойства
Country
является
CA
, тогда в представление будет выведена показанная ниже разметка:
<select id="Country" name="Country">
<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
(выделены полужирным):
<b><div asp-validation-summary="All" class="text-danger"></div></b>
<div class="form-group">
<label asp-for="PetName" class="col-form-label"></label>
<input asp-for="PetName" class="form-control" />
<b> <span asp-validation-for="PetName" class="text-danger"></span></b>
</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"/>
<b> <span asp-validation-for="Color" class="text-danger"></span></b>
</div>
Эти вспомогательные функции дескрипторов будут отображать ошибки модели, возникшие во время привязки и проверки достоверности, как показано на рис. 31.3.
Вспомогательная функция дескриптора для среды
Вспомогательная функция дескриптора для среды (
<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>
<b><environment include="Development"></b>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<b></environment></b>
<b><environment exclude="Development"></b>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<b></environment></b>
<link rel="stylesheet" href="~/css/site.css" />
В первой вспомогательной функции дескриптора для среды применяется атрибут
include="Development"
, чтобы включить содержащиеся файлы, когда среда установлена в
Development
. В таком случае загружается неминифицированная версия Bootstrap. Во второй вспомогательной функции дескриптора для среды используется атрибут
exclude="Development"
, чтобы задействовать содержащиеся файлы, когда среда отличается от
Development
. В таком случае загружается минифицированная версия Bootstrap. Файл
site.css
остается тем же самым в среде
Development
и других средах, поэтому он загружается за пределами вспомогательной функции дескриптора для среды.