Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<b> return View(car);</b>
}
Значение модели может быть передано и в
<partial>
<partial name="Partials/_CarListPartial" model="@Model"/>
Объекты ViewBag, ViewData и TempData
Объекты
ViewBag
ViewData
TempData
Model
И
ViewBag
ViewData
_HeadPartial.cshtml
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<b><title>@ViewData["Title"] - AutoLot.Mvc</title></b>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
Вы заметите, что в атрибуте
<ctitle>
ViewData
ViewData
@
RazorSyntax.cshtml
@model AutoLot.Models.Entities.Car
<b>@{</b>
<b> ViewData["Title"] = "RazorSyntax";</b>
<b>}</b>
<h1>Razor Syntax</h1>
...
Теперь после запуска приложенияи перехода поссылке
https://localhost:5001/Home/RazorSyntax
AutoLot.Mvc
AutoLot.Mvc
Вспомогательные функции дескрипторов
Вспомогательные функции дескрипторов являются новым средством, введенным в версии ASP.NET Core. Вспомогательная функция дескриптора (tag helper) — это разметка (специальный дескриптор или атрибут в стандартном дескрипторе), представляющий код серверной стороны, который затем помогает сформировать выпускаемую HTML-разметку Они значительно совершенствуют процесс разработки и улучшают читабельность представлений MVC.
В отличие от вспомогательных функций HTML, которые вызываются как методы Razor, вспомогательные функции дескрипторов представляют собой атрибуты, добавляемые к стандартным HTML-элементам или автономным специальным дескрипторам. В случае использования для разработки среды Visual Studio появляется дополнительное преимущество в виде средства IntelliSense, которое отображает подсказки по встроенным вспомогательным функциям дескрипторов.
Например, показанная ниже вспомогательная функция HTML создает метку для свойства
FullName
@Html.Label("FullName","Full Name:",new {@class="customer"})
В итоге генерируется следующая HTML-разметка:
<label class="customer" for="FullName">Full Name:</label>
По всей видимости, синтаксис вспомогательных функций HTML хорошо понятен разработчикам на языке С#, применяющим ASP.NET МУС и Razor. Но его нельзя считать интуитивно понятным, особенно для тех, кто имеет дело с HTML/CSS/JavaScript, но не с языком С#.
Версия в виде вспомогательной функции дескриптора выглядит так:
<label class="customer" asp-for="FullName">Full Name:</label>
Она производит тот же самый вывод, но вспомогательные функции дескрипторов благодаря своей интеграции с дескрипторами HTML удерживают разработчика "в рамках разметки".
Существует множество встроенных вспомогательных функций дескрипторов, которые предназначены для применения вместо соответствующих им вспомогательных функций HTML. Однако не все вспомогательные функции HTML имеют ассоциированные вспомогательные функции дескрипторов. В табл. 31.2 перечислены самые распространенные вспомогательные функции дескрипторов, соответствующие им вспомогательные функции HTML и доступные атрибуты. Они будут раскрыты более подробно в оставшейся части главы.
Включение вспомогательных функций дескрипторов
Вспомогательные функции дескрипторов потребуется сделать видимыми любому коду, где их желательно использовать. Файл
_ViewImports.html
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Строка делает все вспомогательные функции дескрипторов из сборки
Microsoft.AspNetCore.Mvc.TagHelpers
_ViewImports.cshtml
Вспомогательная функция дескриптора для формы
Вспомогательная функция дескриптора для формы (
<form>
Html.BeginForm()
Html.BeginRouteForm()
Edit
CarsController
Id