Blog Ekleme Controller vs Cshml sayfaları
Blog Ekleme Controller vs Cshml sayfaları

BlogControler.cs ve Create.cshtml Blog sayfası kayıt ekleme kodları

BlogController:Controller nesnesinden türetilmelidir.
BlogController.cs 'da IBlogRespository'den blogrepository ve ICategoryRepository'den categoryRepository neneleri private olarak oluşturuldu.

daha sonra public BlogController(IBlogRepository _bRepo, ICategoryRepository _cRepo) oluştulrdu.

        private IBlogRepository blogRepository;
        private ICategoryRepository categoryRepository;
        public BlogController(IBlogRepository _bRepo, ICategoryRepository _cRepo)
        {
            blogRepository = _bRepo;
            categoryRepository = _cRepo;
        }

 

Create.cshtml

@model Blog

@section scripts{
    <script src="~/lib/ckeditor/ckeditor.js"></script>
    <script>
    CKEDITOR.replace("Body");
    </script>
}

<div class="container mt-3">

    <div class="row">
        <div class="col-md-3">
            @await Component.InvokeAsync("CategoryMenu")
        </div>
        <div class="col-md-9">
            <form asp-action="Create" asp-controller="Blog" method="post">
                <div class="form-group">
                    <label asp-for="Title">Başlık</label>
                    <input class="form-control" asp-for="Title">
                </div>
                <div class="form-group">
                    <label asp-for="Description">Kısa Açıklama</label>
                    <textarea class="form-control" asp-for="Description"></textarea>
                </div>
                <div class="form-group">
                    <label asp-for="Body">Blog Metni</label>
                    <textarea class="form-control" asp-for="Body"></textarea>
                </div>
                <div class="form-group form-check">
                    <label class="form-check-label">
                        <input class="form-check-input" asp-for="isApproved" /> Yayında mı?
                    </label>
                </div>
                <div class="form-group">
                    <label asp-for="image" class="control-label"></label>
                    <input asp-for="image" class="form-control" />
                    <span asp-validation-for="image" class="text-danger"></span>
                </div>
                <div class="form-group">
                    <label asp-for="CategoryID" class="control-label"></label>
                    <select asp-for="CategoryID" class="form-control" asp-items="ViewBag.Categories">
                        <option disabled selected>Kategori Seçin</option>
                    </select>
                </div>
                <div class="form-group">
                    <input type="submit" value="Oluştur" class="btn btn-primary" />
                </div>
            </form>
        </div>
    </div>
    </div>

 

BlogController.cs / IActionResult Create - Get ve Post Method
 

        [HttpGet]
        public IActionResult Create()
        {
            //Create sayfasına Categories'ler CategoryRepostiroy.GetAll methodu kullanılarak ViewBag ile gönderiliyor.
            ViewBag.Categories = new SelectList(categoryRepository.GetAll(), "CategoryID", "Name");
            return View();
        }

        [HttpPost]
        public IActionResult Create(Blog entity)
        {
            //Kayıt işlemi yapılacak
            if (ModelState.IsValid)
            {
                blogRepository.AddBlog(entity);
               return RedirectToAction("Index");
            }

            return View(entity);
        }