MyBooks.club
Все категории

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен. Жанр: Программирование . Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
Язык программирования C#9 и платформа .NET5
Дата добавления:
26 август 2023
Количество просмотров:
39
Читать онлайн
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен краткое содержание

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.
Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.
Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Язык программирования C#9 и платформа .NET5 читать онлайн бесплатно

Язык программирования C#9 и платформа .NET5 - читать книгу онлайн бесплатно, автор Эндрю Троелсен
модели может быть передано и в <partial>, как показано ниже:

<partial name="Partials/_CarListPartial" model="@Model"/>

Объекты ViewBag, ViewData и TempData

Объекты ViewBag, ViewData и TempData являются механизмами для отправки представлению данных небольшого объема. В табл. 31.1 описаны три механизма передачи данных из контроллера в представление (помимо свойства Model) либо из контроллера в контроллер.

И ViewBag, и ViewData указывают на тот же самый объект; они просто предлагают разные способы доступа к данным. Еще раз взгляните на созданный ранее файл _HeadPartial.cshtml (важная строка выделена полужирным):

<meta charset="utf-8" />

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

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

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

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

Вы заметите, что в атрибуте <ctitle> для установки значения применяется объект ViewData. Поскольку ViewData — конструкция Razor, она предваряется символом @. Чтобы увидеть результаты, модифицируйте представление RazorSyntax.cshtml следующим образом:

@model AutoLot.Models.Entities.Car

@{

    ViewData["Title"] = "RazorSyntax";

}

<h1>Razor Syntax</h1>

...

Теперь после запуска приложенияи перехода поссылке https://localhost:5001/Home/RazorSyntax вы увидите на вкладке браузера заголовок Razor Syntax — AutoLot.Mvc (Синтаксис Razor — 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 с именами Html.BeginForm() и Html.BeginRouteForm(). Скажем, чтобы создать форму, которая отправляет версию действия Edit для НТТР-метода POST контроллера CarsController с одним параметром (Id), потребуется следующий код и разметка:

<form method="post" asp-controller="Cars" asp-action="Edit"

  asp-route-id="@Model.Id" >

<!-- Для краткости не показано -->

</form>

С точки зрения строгой HTML-разметки дескриптор <form> будет работать без атрибутов вспомогательной функции дескриптора для формы. Если атрибуты отсутствуют, тогда это просто обычная HTML-форма, к которой понадобится вручную добавить маркер защиты от подделки. Тем не менее, после добавления одного из атрибутов asp-* к форме добавляется и маркер защиты от подделки, который можно отключить, добавив к дескриптору <form> атрибут asp-antiforgery="false". Маркер защиты от подделки рассматривается позже в главе.

Форма создания для сущности Car

Форма создания для сущности Car отправляется методу действия Create() класса CarsController. Добавьте в каталог ViewsCars новое пустое представление Razor по имени Create.cshtml со следующим содержимым:

@model Car

@{

  ViewData["Title"] = "Create";

}

<h1>Create a New Car</h1>

<hr/>

<div class="row">

  <div class="col-md-4">

    <form asp-controller="Cars" asp-action="Create">

    </form>

  </div>

</div>

Хотя представление не полное, его достаточно для демонстрации того, что было раскрыто до сих пор, а также вспомогательной функции дескриптора для формы. Первая строка строго типизирует представление сущностным классом Car. Блок кода Razor устанавливает специфичный к представлению заголовок для страницы  HTML-дескриптор <form> имеет атрибуты asp-controller и asp-action, которые выполняются на серверной стороне для формирования дескриптора, а также добавления маркера защиты от подделки. Чтобы визуализировать это представление, добавьте в каталог Controllers новый контроллер по имени CarsController. Модифицируйте код, как показано ниже (позже в главе он будет обновлен):

using Microsoft.AspNetCore.Mvc;

namespace AutoLot.Mvc.Controllers

{

  [Route("[controller]/[action]")]

  public class CarsController : Controller

  {

    public IActionResult Create()

    {

      return View();

    }

  }

}

Теперь запустите приложение и перейдите по ссылке http://localhost:5001/Cars/Create. Инспектирование источника покажет, что форма имеет атрибут действия (action), основанный на asp-controller и asp-action, метод (method), установленный в post, и добавленный скрытый элемент <input> с именем __RequestVerificationToken:

<form action="/Cars/Create" method="post">

  <input name="__RequestVerificationToken" type="hidden"

 value="CfDJ8Hqg5HsrvCtOkkLRHY4ukxwvix0vkQ3vOvezvtJWdl0P5lwbI5-

FFWXh8KCFZo7eKxveCuK8NRJywj8Jz23pP2nV37fIGqqcITRyISGgq7tRYZDuPv8N

MIYz2nCWRiDbxOvlkg61DTDW9BrJxr8H63Y">

</form>

Далее в главе


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


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

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.