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

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

Жанры

Язык программирования 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 свойств.

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

Кротовский, побойтесь бога

Парсиев Дмитрий
6. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кротовский, побойтесь бога

Конь Рыжий

Москвитина Полина Дмитриевна
2. Сказания о людях тайги
Проза:
историческая проза
8.75
рейтинг книги
Конь Рыжий

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Стратегия обмана. Трилогия

Ванина Антонина
Фантастика:
боевая фантастика
5.00
рейтинг книги
Стратегия обмана. Трилогия

Новые горизонты

Лисина Александра
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Новые горизонты

Отмороженный 7.0

Гарцевич Евгений Александрович
7. Отмороженный
Фантастика:
рпг
аниме
5.00
рейтинг книги
Отмороженный 7.0

Кто ты, моя королева

Островская Ольга
Любовные романы:
любовно-фантастические романы
7.67
рейтинг книги
Кто ты, моя королева

Блуждающие огни 2

Панченко Андрей Алексеевич
2. Блуждающие огни
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Блуждающие огни 2

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Отдельный танковый

Берг Александр Анатольевич
1. Антиблицкриг
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Отдельный танковый