Язык программирования C#9 и платформа .NET5 - Страница 619

Изменить размер шрифта:

  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
(выделены полужирным):

<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.

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

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

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

<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="~/lib/bootstrap/dist/css/bootstrap.css" />

</environment>

<environment exclude="Development">

  <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />

</environment>

<link rel="stylesheet" href="~/css/site.css" />

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

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

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com