Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Методы действий Delete()
В рамках процесса удаления используются два метода действий: первый (
HttpGet
HttpPut
Метод действия Delete() для GET
Метод действия
Delete()
GET
Details()
[HttpGet("{id?}")]
public IActionResult Delete(int? id)
{
var car = GetOneCar(id);
if (car == null)
{
return NotFound();
}
return View(car);
}
Форму удаления можно просмотреть по ссылке
/Cars/Delete/1
Метод действия Delete() для POST
Метод действия
Delete()
POST
Id
TimeStamp
[HttpPost("{id}")]
[ValidateAntiForgeryToken]
public IActionResult Delete(int id, Car car)
{
if (id != car.Id)
{
return BadRequest();
}
_repo.Delete(car);
return RedirectToAction(nameof(Index));
}
Метод действия
Delete()
POST
На этом создание представлений и контроллера для сущности
Car
Компоненты представлений
Компоненты представлений — еще одно новое функциональное средство, появившееся в ASP.NET Core. Они сочетают в себе преимущества частичных представлений и дочерних действий для визуализации частей пользовательского интерфейса. Как и частичные представления, компоненты представлений вызываются из другого представления,но в отличие от частичных представлений самих по себе компоненты представлений также имеют компонент серверной стороны. Благодаря такой комбинации они хорошо подходят для решения задач, подобных созданию динамических меню (как вскоре будет показано), панелей входа, содержимого боковой панели и всего того, что требует кода серверной стороны, но не может квалифицироваться как автономное представление.
На заметку! Дочерние действия в классической инфраструктуре ASP.NET MVC были методами действий контроллера, которые не могли служить конечными точками, видимыми клиенту. В ASP.NET Core они не существуют.
Для
AutoLot
_Layout.cshtml
_Layout.cshtml
_Layout.cshtml
OnActionExecuting()
ViewBag
Код серверной стороны
Создайте в корневом каталоге проекта
AutoLot.Mvc
ViewComponents
MenuViewComponent.cs
ViewComponent
ViewComponent
Добавьте в начало файла следующие операторы
using
using System.Linq;
using AutoLot.Dal.Repos.Interfaces;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewComponents;
Сделайте класс общедоступным и унаследованным от
ViewComponent
ViewComponent
Controller
ViewComponent
IMakeRepo
namespace AutoLot.Mvc.ViewComponents
{
public class MenuViewComponent : ViewComponent
{
private readonly IMakeRepo _makeRepo;
public MenuViewComponent(IMakeRepo makeRepo)
{
_makeRepo = makeRepo;
}
}
Компонентам представлений доступны два метода,
Invoke()
InvokeAsync()
MakeRepo
Invoke()