Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
internal SelectList GetMakes(IMakeRepo makeRepo)
=> new SelectList(makeRepo.GetAll(), nameof(Make.Id), nameof(Make.Name));
Метод действия Create() для GET
Метод действия
Create()
GET
ViewData
SelectList
Make
Create
[HttpGet]
public IActionResult Create([FromServices] IMakeRepo makeRepo)
{
ViewData["MakeId"] = GetMakes(makeRepo);
return View();
}
Форму создания можно просмотреть по ссылке
/Cars/Create
Метод действия Create() для POST
Метод действия
Create()
POST
Car
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([FromServices] IMakeRepo makeRepo, Car car)
{
if (ModelState.IsValid)
{
_repo.Add(car);
return RedirectToAction(nameof(Details),new {id = car.Id});
}
ViewData["MakeId"] = GetMakes(makeRepo);
return View(car);
}
Атрибут
HttpPost
Cars/Create
POST
ValidateAntiForgeryToken
__RequestVerificationToken
Экземпляр реализации
IMakeRepo
FromServices
FromServices
Сущность
Car
ModelState
Car
Details()
Car
Post-Redirect-Get
HttpPost(Create()
HttpGet(Details()
POST
Если состояние модели не является допустимым, то список
SelectList
Make
ViewData
Create
Представление Edit
Создайте в каталоге
ViewsCars
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()
<b> <input type="hidden" asp-for="Id" /></b>
<b> <input type="hidden" asp-for="TimeStamp" /></b>
<div class="form-group">
<button type="submit" class="btn btn-primary">
Save <i class="fas fa-save"></i>
</button> |
<item-list></item-list>
</div>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
В представлении также применяется вспомогательная функция
@Html.EditorForModel()
_ValidationScriptsPartial
Id
TimeStamp
Id
TimeStamp