Чтение онлайн

на главную - закладки

Жанры

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

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

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

</form>

С точки зрения строгой HTML-разметки дескриптор

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

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

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

Car
отправляется методу действия
Create
класса
CarsController
. Добавьте в каталог
Views\Cars
новое пустое представление 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="CfDJ8Hqg5HsrvCtOkkLRHY4ukxwv
ix0vkQ3vOvezvtJWdl0P5lwbI5-

FFWXh8KCFZo7eKxveCuK8NRJywj8Jz23pP2nV37fIGqqcITRyISGgq7tRYZDuPv8N

MIYz2nCWRiDbxOvlkg61DTDW9BrJxr8H63Y">

</form>

Далее

в главе представление
Create
будет неоднократно обновляться.

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

Вспомогательная функция дескриптора для действия формы используется в элементах кнопок и изображений с целью изменения действия содержащей их формы. Например, следующая кнопка, добавленная к форме редактирования, вызовет передачу запроса

POST
конечной точке
Create
:

<button type="submit" asp-action="Create">Index</button>

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

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

<а>
) заменяет вспомогательную функцию HTML с именем
Html.ActionLink
. Скажем, чтобы создать ссылку на представление
RazorSyntax
, применяйте такой код:

<a class="nav-link text-dark" asp-area="" asp-controller="Home"

asp-action="RazorSyntax">

Razor Syntax

</a>

Для добавления страницы синтаксиса Razor в меню модифицируйте

_Menu.cshtml
, как показано ниже, добавив новый элемент меню между элементами Home (Домой) и Privacy (Секретность) (дескрипторы
<li>
, окружающие дескрипторы якорей, предназначены для меню Bootstrap):

...

<li class="nav-item">

<a class="nav-link text-dark" asp-area="" asp-controller="Home"

asp-action="Index">Home</a>

</li>

<li class="nav-item">

<a class="nav-link text-dark" asp-area="" asp-controller="Home"

asp-action="RazorSyntax">Razor Syntax</a>

</li>

<li class="nav-item">

<a class="nav-link text-dark" asp-area="" asp-controller="Home"

asp-action="Privacy">Privacy</a>

</li>

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

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

<input>
) является одной из наиболее универсальных. В дополнение к автоматической генерации атрибутов
id
и
name
стандарта HTML, а также любых атрибутов
data-val
стандарта HTML5, вспомогательная функция дескриптора строит надлежащую HTML-разметку, основываясь на типе данных целевого свойства. В табл. 31.3 перечислены типы HTML, которые создаются на базе типов .NET Core свойств.

Поделиться:
Популярные книги

Live-rpg. эволюция-3

Кронос Александр
3. Эволюция. Live-RPG
Фантастика:
боевая фантастика
6.59
рейтинг книги
Live-rpg. эволюция-3

Пушкарь. Пенталогия

Корчевский Юрий Григорьевич
Фантастика:
альтернативная история
8.11
рейтинг книги
Пушкарь. Пенталогия

Хроники разрушителя миров. Книга 8

Ермоленков Алексей
8. Хроники разрушителя миров
Фантастика:
фэнтези
5.00
рейтинг книги
Хроники разрушителя миров. Книга 8

Адъютант

Демиров Леонид
2. Мания крафта
Фантастика:
фэнтези
6.43
рейтинг книги
Адъютант

Эфир. Терра 13. #2

Скабер Артемий
2. Совет Видящих
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эфир. Терра 13. #2

Кодекс Крови. Книга VI

Борзых М.
6. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VI

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Я – Орк. Том 2

Лисицин Евгений
2. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 2

Законы Рода. Том 2

Flow Ascold
2. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 2

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Темный Патриарх Светлого Рода

Лисицин Евгений
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода

Раб и солдат

Greko
1. Штык и кинжал
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Раб и солдат

Волк 5: Лихие 90-е

Киров Никита
5. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 5: Лихие 90-е