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

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

Жанры

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

Если состояние модели не является допустимым, то список

SelectList
с записями
Make
добавляется в объект
ViewData
и сущность, которая была отправлена, посылается обратно представлению
Create
. Состояние модели тоже неявно отправляется представлению, так что могут быть отображены любые ошибки.

Представление Edit

Создайте в каталоге

Views\Cars
новый файл представления по имени
Edit.cshtml
. Удалите весь сгенерированный код и добавьте следующую разметку:

@model Car

@{

ViewData["Title"] = "Edit";

}

<h1>Edit @Model.PetName</h1>

<hr />

<div class="row">

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

<form asp-area="" asp-controller="Cars" asp-action="Edit"

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

@Html.EditorForModel

<input type="hidden" asp-for="Id" />

<input type="hidden" asp-for="TimeStamp" />

<div class="form-group">

<button type="submit" class="btn btn-primary">

Save <i class="fas fa-save"></i>

</button>&nbsp;&nbsp;|&nbsp;&nbsp;

<item-list></item-list>

</div>

</form>

</div>

</div>

@section Scripts {

<partial name="_ValidationScriptsPartial" />

}

В

представлении также применяется вспомогательная функция
@Html.EditorForModel
и частичное представление
_ValidationScriptsPartial
. Однако оно еще содержит два скрытых элемента ввода для
Id
и
TimeStamp
. Они будут отправляться вместе с остальными данными формы, но не должны редактироваться пользователями. Без значений
Id
и
TimeStamp
не удалось бы сохранять изменения.

Методы действий Edit

В рамках процесса редактирования используются два метода действий: первый (

HttpGet
) возвращает сущность, подлежащую редактированию, а второй (
HttpPut
) отправляет значения обновленной записи.

Метод действия Edit для GET

Метод действия

Edit
для
GET
получает одиночную запись
Car
с идентификатором
Id
через оболочку службы и отправляет ее представлению
Edit
:

[HttpGet("{id?}")]

public IActionResult Edit([FromServices] IMakeRepo makeRepo, int? id)

{

var car = GetOneCar(id);

if (car == null)

{

return NoContent;

}

ViewData["MakeId"] = GetMakes(makeRepo);

return View(car);

}

Маршрут

имеет необязательный параметр
id
, значение которого передается методу с применением параметра
id
. Экземпляр реализации
IMakeRepo
внедряется в метод и используется для создания списка
SelectList
записей
Make
. Посредством вспомогательного метода
GetOneCar
получается запись
Car
. Если запись
Car
найти не удалось, тогда метод возвращает ошибку
NoContent
. В противном случае он добавляет список
SelectList
записей
Make
в словарь
ViewData
и визуализирует представление
Edit
.

Форму редактирования можно просмотреть по ссылке

/Cars/Edit/1
(рис. 31.8).

Метод действия Edit для POST

Метод действия

Edit
для
POST
аналогичен методу действия
Create
для
POST
с отличиями, описанными после кода метода:

[HttpPost("{id}")]

[ValidateAntiForgeryToken]

public IActionResult Edit([FromServices] IMakeRepo makeRepo, int id, Car car)

{

if (id != car.Id)

{

return BadRequest;

}

if (ModelState.IsValid)

{

_repo.Update(car);

return RedirectToAction(nameof(Details),new {id = car.Id});

}

ViewData["MakeId"] = GetMakes(makeRepo);

return View(car);

}

Метод действия

Edit
для
POST
принимает один обязательный параметр маршрута
id
. Если его значение не совпадает со значением
Id
реконструированной сущности
Car
, тогда клиенту отправляется ошибка
BadRequest
. Если состояние модели допустимо, то сущность обновляется, после чего пользователь перенаправляется на метод действия
Details
с применением свойства
Id
сущности
Car
в качестве параметра маршрута. Здесь также используется шаблон "отправка-перенаправление-получение".

Если состояние модели не является допустимым, то список

SelectList
с записями
Make
добавляется в объект
ViewData
и сущность, которая была отправлена, посылается обратно представлению
Edit
. Состояние модели тоже неявно отправляется представлению, так что могут быть отображены любые ошибки.

Представление Delete

Создайте в каталоге

Views\Cars
новый файл представления по имени
Delete.cshtml
. Удалите весь сгенерированный код и добавьте следующую разметку:

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

Машенька и опер Медведев

Рам Янка
1. Накосячившие опера
Любовные романы:
современные любовные романы
6.40
рейтинг книги
Машенька и опер Медведев

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

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

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Приручитель женщин-монстров. Том 2

Дорничев Дмитрий
2. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 2

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Бальмануг. (Не) Любовница 1

Лашина Полина
3. Мир Десяти
Фантастика:
юмористическое фэнтези
попаданцы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 1

Курсант: Назад в СССР 10

Дамиров Рафаэль
10. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 10

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

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

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

Адепт. Том второй. Каникулы

Бубела Олег Николаевич
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Адепт. Том второй. Каникулы

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Последний реанорец. Том I и Том II

Измена. Право на семью

Арская Арина
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Измена. Право на семью