J1: Admin/Styles/Create #64:
- Création de StyleCreateViewModel - Création de la vue create - Integration du create dans le controller
This commit is contained in:
@@ -64,6 +64,35 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers
|
|||||||
return View(viewModel);
|
return View(viewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GET: Administration/Styles/Create
|
||||||
|
public ActionResult Create()
|
||||||
|
{
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
|
||||||
|
// POST: Administration/Styles/Create
|
||||||
|
[HttpPost]
|
||||||
|
[ValidateAntiForgeryToken]
|
||||||
|
public ActionResult Create(StyleCreateViewModel model)
|
||||||
|
{
|
||||||
|
if (!ModelState.IsValid)
|
||||||
|
{
|
||||||
|
return View(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Nouveau style créé : {Libelle}", model.Libelle);
|
||||||
|
return RedirectToAction(nameof(Index));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
_logger.LogError(e, "Erreur lors de la création du style");
|
||||||
|
ModelState.AddModelError("", "Une erreur est survenue lors de la création.");
|
||||||
|
return View(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// GET: Administration/Styles/Delete/5
|
// GET: Administration/Styles/Delete/5
|
||||||
public ActionResult Delete(int id)
|
public ActionResult Delete(int id)
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
// <copyright file="StyleDeleteViewModel.cs" company="Webzine">
|
||||||
|
// Copyright (c) Webzine. Tout droit réservé.
|
||||||
|
// </copyright>
|
||||||
|
|
||||||
|
|
||||||
|
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ViewModel pour la création d'un style en administration.
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
public class StyleCreateViewModel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Obtient ou définit le libellé du style.
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
public string Libelle { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
@model Webzine.WebApplication.Areas.Administration.ViewModels.Style.StyleCreateViewModel
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Créer un style";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="container mt-4">
|
||||||
|
<h1 class="mb-3">Créer un style</h1>
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<form asp-action="Create" method="post" class="mt-4">
|
||||||
|
|
||||||
|
@* Utilisation de d-flex pour aligner les éléments sur une ligne *@
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
|
||||||
|
@* Label *@
|
||||||
|
<div class="me-3">
|
||||||
|
<label asp-for="Libelle" class="col-form-label fw-bold">
|
||||||
|
Libellé<span class="text-danger">*</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Input *@
|
||||||
|
<div class="me-3">
|
||||||
|
<input asp-for="Libelle" class="form-control" style="width: 250px;" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Bouton *@
|
||||||
|
<div>
|
||||||
|
<button type="submit" class="btn btn-primary">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Zone d'erreur en dessous *@
|
||||||
|
<div class="mt-2">
|
||||||
|
<span asp-validation-for="Libelle" class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<a asp-action="Index" class="btn-link">Retour à l'administration des styles</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user