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