25 Duyuru Ekleme

DuyuruController.cs içine Ekle actionu nu ekliyoruz. Burada Duyuru modelinden bir örnek oluşturup view içine gönderiyoruz

   public IActionResult Ekle()
        {
            Duyuru m = new Duyuru();
            return View(m);
        }

Views\Duyuru\Ekle.cshtml dosyasına aşağıdaki kodları ekliyoruz.

@model Duyuru
@{
    ViewData["Title"] = "Duyuru Ekle";
}
<form method="post" asp-antiforgery="true">
    <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">Kaydet</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>
}

Aşağıdaki kodlar ile ckeditor desteğini çalışmamıza katmış oluyoruz. ckeditor eklentisi form nesnesini editore çeviriyor.

 <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>

DuyuruController.cs içine formdan gelen bilgileri işleyen Ekle metodu ekliyoruz. Daha önce eklediğimiz Ekle metodu ile çakışmaması için veri alma metodunu HttpPost olarak değiştiriyoruz.


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