Core Mvc
Beğen (0)

Girilen Bir Tarihi Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama

Core Mvc uygulamalarında projeleri gruplandırarak basitleştirme işlemleri için Area yapısını kullanabilirsiniz. Her bir sayfa linki için sayfaya özel Route ayarı yapabilirsiniz. Bu uygulamada girilen bir tarihi görüntüleyen programı Area ve Route tanımlayarak yapacağız.

1. Area Oluşturma

İlk olarak Areas/Tarihler adında bir Area oluşturuyoruz. Bu Area içinde aşağıdaki klasörler bulunmalı:

Areas
├── Tarihler
│   ├── Controllers
│   ├── Models
│   ├── Views

Bu dizin yapısı, MVC yapısını koruyarak projemizin modüler olmasını sağlar.

2. Area Kaydı ve Ayarları

Area’ların çalışabilmesi için Program.cs dosyasında endpoint ayarlarını yapmamız gerekiyor:

Program.cs içinde Area desteği ekleyin.

app.MapControllerRoute(
    name: "areas",
    pattern: "{area:exists}/{controller=Tarih}/{action=Index}/{id?}"
    );

Bu yapı, URL'nin "area/controller/action" şeklinde çalışmasını sağlar. Örneğin:

https://localhost:5001/Tarihler/Tarihler/Ekle

3. Model Oluşturma

Model, kullanıcıdan gelen tarih bilgisini doğrulamak için kullanılır. Tarih boş geçilemez ve sadece belirtilen olmalıdır.

Areas/Tarihler/Models/TarihModel.cs

using System.ComponentModel.DataAnnotations;

namespace TarihUygulamasi.Areas.Tarihler.Models
{
    public class TarihModel
    {
        [Required(ErrorMessage = "Tarih seçmek zorunludur.")]
        [DataType(DataType.Date)]
        public DateTime? Tarih { get; set; }
    }
}

Açıklamalar:

[Required] → Kullanıcının boş giriş yapmasını engeller.

[DataType(DataType.Date)] → Tarih formatında giriş yapılmasını zorunlu kılar.

4. Controller Tanımlama

Kullanıcıdan gelen tarih bilgisini alıp listeye ekleyen ve görüntüleyen bir controller oluşturacağız.

Areas/Tarihler/Controllers/TarihController.cs

using Microsoft.AspNetCore.Mvc;
using TarihUygulamasi.Areas.Tarihler.Models;

namespace TarihUygulamasi.Tarihler.Controllers
{
    [Area("Tarihler")]
    [Route("Tarihler/[controller]/[action]")]
    public class TarihController : Controller
    {
        private static List<TarihModel> TarihListesi = new List<TarihModel>();

        public IActionResult Index()
        {
            return View(TarihListesi);
        }

        [HttpPost]
        public IActionResult Ekle(TarihModel model)
        {
            if (ModelState.IsValid)
            {
                TarihListesi.Add(model);
                return RedirectToAction("Index");
            }

            return View("Index", TarihListesi);
        }
    }
}

Açıklamalar

[Area("Tarihler")] → Controller'in Tarihler alanına ait olduğunu belirtir.

[Route("Tarihler/[controller]/[action]")] → Route tanımını dinamik hale getirir.

static List<TarihModel> TarihListesi → Girilen tarihleri saklamak için kullanılır.

Index() → Listeyi görüntüler.

Ekle(TarihModel model) → Kullanıcıdan gelen tarihi listeye ekler.

5. View Tasarımı

Kullanıcı girilen tarihleri görebilecek ve yeni tarih ekleyebilecek.

Areas/Tarihler/Views/Tarih/Index.cshtml

@model List<TarihUygulamasi.Areas.Tarihler.Models.TarihModel>
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

<h1>Girilen Tarihler</h1>

<ul>
    @foreach (var tarih in Model)
    {
        <li>@tarih.Tarih?.ToString("dd/MM/yyyy")</li>
    }
</ul>

<h2>Tarih Ekle</h2>
<form asp-controller="Tarih" asp-action="Ekle" method="post">
    <label for="tarih">Tarih Seç:</label>
    <input type="date" id="tarih" name="Tarih" required />
    <button type="submit">Ekle</button>
</form>

@if (!ViewData.ModelState.IsValid)
{
    <ul style="color: red;">
        @foreach (var error in ViewData.ModelState.Values.SelectMany(x => x.Errors))
        {
            <li>@error.ErrorMessage</li>
        }
    </ul>
}

Açıklamalar

Kullanıcı tarih girişini date picker (takvim seçici) ile yapıyor.

Tarih dd/MM/yyyy formatında listeleniyor.

Hatalı giriş yapıldığında hata mesajları gösteriliyor.

6. Çalıştırma ve Test

Uygulamayı başlatın ve tarayıcıda şu URL'yi ziyaret edin:

https://localhost:5001/Tarihler/Tarih/Index

Bir tarih girin ve ekleyin. Listeye eklendiğini göreceksiniz.

Hatalı girişleri test edin:

Boş geçmeyin! "Tarih zorunludur." hatası alırsınız.

Okunma Sayısı: 2

Etiketler
core mvc area route controller model view 

Yorumlar

Yorum Ekle
Kötü İyi
İlgili Makaleler
Pdf Dosyasını Parçalara Bölüp Kaydeden Uygulamalayı Core Mvc Platformunda Tasarlama
2020 TYT Matematik Para Makinesiyle İlgili Sorunun Çözümünü Core Mvc Kullanarak Kodlama
ASP.NET Core MVC Projesinde Yönlendirme (Routing) İşlemleri
Girilen Bir Tarihi Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Dikdörtgenler Prizmasının Hacmini Bulan Uygulamayı Core Mvc Platformunda Yapınız
2026 Dünya Kupası Core MVC Projesinin Yayına Hazırlanması
Core Mvc Projelerinde Model Katmanını Visual Studio Code Editöründe Oluşturma
Core Mvc Projelerinde View Katmanını Visual Studio Code Editöründe Oluşturma
Core MVC Projesinde Action Metottan View Tarafına Veri Aktarma Yöntemleri (VS Code ile Adım Adım)
Rastgele Seçilen N Adet Sayının Varyansını ve Standart Sapmasını Bulan Core Mvc Uygulaması
ASP.NET Core MVC Projesinde Kullanılan Standart Ara Katmanlar (Middleware)
Girilen Bir Peygamber Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
Girilen Bir Dağ Adını Görüntüleyen Programı Core Mvc Platformunda Area ve Route Tanımlayarak Tasarlama
İki Boylam Arasındaki Şehirlere Ait Saat Farkını Bulan Core Mvc Uygulaması
2026 Dünya Kupası Core MVC Projesinde Fikstür Oluşturma İşlemleri
Bir Galeride Bulunan 5 Arabanın Markasını, Alış ve Satış Fiyatını Listeleyen Core Mvc Uygulaması
Girilen Bir Yılı Görüntüleyen Uygulamayı Areas ve Route Kullanarak Core Mvc Platformunda Yapma
Bir İç Açısı Verilen Düzgün Çokgenin Kenar Sayısını Bulan Uygulamayı Core Mvc Platformunda Yapınız
Girilen Bir Mevsimi Görüntüleyen Uygulamayı Areas ve Route Kullanarak Core Mvc Platformunda Yapma
Controller Sınıfında Kullanılan Action Metotları Visual Studio Code Programında Tanımlama