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);
}