27 Duyuru Düzenle

DuyuruController.cs dosyasına aşağıdaki kodları ekleyiniz

 [HttpGet]
        public async Task<IActionResult> Duzenle(int Id)
        {
            var duyuru = await contex.Duyurular.FindAsync(Id);
            if (duyuru == null) return NotFound();
            return View(duyuru);
        }

Views\Duyuru\Edit.cshtml dosyasına aşağıdaki kodları yazınız

@model Duyuru
@{
    ViewData["Title"] = "Duyuru Düzenle";
}
<form method="post" asp-antiforgery="true">
   <input asp-for="Id" type="hidden"/>
   <input asp-for="EklenmeTarihi" type="hidden"/>
    <div class="text-danger" asp-validation-summary="All"></div>
    <div class="row mt-3">
        <div class="col-3">
            <label asp-for="Baslik"></label>
        </div>
        <div class="col-9">
            <input asp-for="Baslik" class="form-control">
            <span asp-validation-for="Baslik" class="text-danger"></span>
        </div>
    </div>
     <div class="row mt-3">
        <div class="col-3">
            <label asp-for="KisaBilgi"></label>
        </div>
        <div class="col-9">
            <textarea asp-for="KisaBilgi" class="form-control"></textarea>
            <span asp-validation-for="KisaBilgi" class="text-danger"></span>
        </div>
    </div>
    <div class="row mt-3">
        <div class="col-3">
            <label asp-for="YayinBaslamaTarihi"></label>
        </div>
        <div class="col-9">
            <input asp-for="YayinBaslamaTarihi" class="form-control">
            <span asp-validation-for="YayinBaslamaTarihi" class="text-danger"></span>
        </div>
    </div>
    <div class="row mt-3">
        <div class="col-3">
            <label asp-for="Detay"></label>
        </div>
        <div class="col-9">
            <textarea asp-for="Detay" class="form-control"></textarea>
            <span asp-validation-for="Detay" class="text-danger"></span>
        </div>
    </div>
    <div class="row mt-3">
        <div class="col-6 mx-auto">
            <button type="reset" class="btn-danger btn">Temizle</button>
            <button type="submit" class="btn-success btn">Güncelle</button>
        </div>
    </div>
</form>
@section Scripts{
     <script src="https://cdn.ckeditor.com/4.19.0/standard-all/ckeditor.js"></script>
      <script>
    CKEDITOR.replace('Detay', {
      height: 260,
      width: 720,
      removeButtons: 'PasteFromWord'
    });
  </script>
}

Yukarıdaki kodlarda Düzenle görünümünün Ekle görünümünden farklı olarak form içinde Id ve EklenmeTarihi alanlarına sahip olduğuna dikkat ediniz. Düzenlenmeyecek alanlar form içine gizli alan olarak eklenir. Veri güvenliği açısından bu bilgileri controller içinde yerleştirmek daha güvenli olacaktır.

DuyuruController.cs dosyasına aşağıdaki kodları ekleyiniz


        [HttpPost]
        public async Task<IActionResult> Duzenle(Duyuru m)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    contex.Update(m);
                    await contex.SaveChangesAsync();
                    return RedirectToAction(nameof(Index));
                }
            }
            catch (System.Exception istisna)
            {
                string mesaj = (istisna.InnerException == null)
                ? istisna.Message : istisna.InnerException.Message;
                ModelState.AddModelError("", mesaj);
            }
            return View();
        }