Visual Studio 2022 kullanarak ASP.NET Core MVC uygulamasını geliştirmek için aşağıdaki adımları izleyebilirsiniz. Bu adımlar, ASP.NET Core MVC ile haftanın günlerini bir liste halinde göstermek için gerekli olan tüm işlemleri detaylı şekilde ele alacaktır.
Visual Studio 2022 programını açalım.
Create a New project komutunu seçerek yeni bir proje oluşturalım.
Create a new project diyalog pencersinde Dil olarak c#, platform olarak All platforms, ortam olarak Web seçelim. Ekrana gelen şablonlardan Asp.Net Core Empty seçelim. Next diyerek devam edelim.
Proje ismi olarak HaftaninGunleriApp yazalım. Next diyerek devam edelim. Ekrana gelen pencerede Framework olarak .Net 8,0 kalabilir. Configure for Https onay kutusunu iptal edelim. Create diyerek projeyi oluşturalım.
Sıra geldi projede MVC platformlarını kurma işlemini yapmaya. Öncelikle program.cs isimli dosyada projenin Mvc projesi olduğunu belirtelim.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.Run();
Daha sonra projeye M harfini temsil eden Models, V harfini temsil eden Views, C harfini temsil eden Controllers klasörlerini ekleyelim. Controllers klasörü içine HomeComtroller isminde bir controller dosyası ekleyelim. Dosyamızın içeriği aşağıdaki gibi olacaktır.
using Microsoft.AspNetCore.Mvc;
namespace HaftaninGunleriApp.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
Burada dosya ismi verilirken şunlara dikkat etmeliyiz. Proje ilk çalıştırıldığında hangi bölüme gidecekse o bölüm Controller kısmında belirtilir. Bu dosyada proje ilk Home kısmına gidecektir. Controller yazısı ise o dosyanın hangi amaç için kullanıldığını belirtir. Controller dosyası bir view çalıştırır. Burada view dosyamız Index dosyasıdır. Şimdi bu dosyayı Views klasörü altında oluşturalım. Bu klasör içinde bir Razor View dosyası oluşturulur. Dosyayı şöyle düzenleyelim.
@{
<h1>Ben view dosyasıyım</h1>
}
Projemizi çalıştıralım. Web sayfası çalışmayacak ya da wwwroot klasörü içinde yer alan dosyayı gösterecektir. Çinkü projede controller tarafından kullanılacak view dısyasını belirtmedik. Bunu program.cs tarafında şöyle yapmalıyız.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithView();
var app = builder.Build();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
app.Run();
Tekrar çalıştıralım projeyi. Projede controller ile belirtilen Index dosyası views klasöründe home klasörü altında aranacaktır. Ancak bu klasör olmadığı için hata verecektir. Klasörümüzü oluşturalım ve Index dosyasını bunun altına kopyalayalım. Projeyi çalıştıralım. Hatasız bir şekilde sonucu görürsünüz. Bu arada oluşabilecek hataların deneme aşamasında görütülenmesinde yarar vardır. Aşağıdaki satırları program.cs dosyasına ekleyelim.
app.UseDeveloperExceptionPage();
app.UseStatusCodePages();
Şimdi hantanın günlerini saklayacak Gunler isimli bir list elemanı oluşturalım. Bu elemanın içine haftanın günlerini yazalım.
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace HaftaninGunleriApp.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
// Haftanın günlerini liste halinde oluşturuyoruz.
var Gunler = new List<string>
{
"Pazartesi",
"Salı",
"Çarşamba",
"Perşembe",
"Cuma",
"Cumartesi",
"Pazar"
};
return View(Gunler); // Veriyi View'a gönderiyoruz.
}
}
}
Şimdi, Index.cshtml dosyasının içeriğini aşağıdaki gibi düzenleyin:
@model List<string>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Haftanın Günleri</title>
</head>
<body>
<h1>Haftanın Günleri</h1>
<ul>
@foreach (var gun in Model)
{
<li>@gun</li>
}
</ul>
</body>
</html>
@model List<string> ifadesi, controller'dan gelen veriyi (haftanın günlerini) Index.cshtml sayfasında kullanmamızı sağlar.
@foreach döngüsü, gelen günlerin her birini bir <li> etiketiyle listelemek için kullanılır.