MVC (Model-View-Controller), yazılım geliştirmede kullanılan bir mimari deseni anlatılmaktadır.
MVC Nedir?
MVC (Model-View-Controller), yazılım geliştirmede kullanılan bir mimari desendir. Üç ana bileşenden oluşur:
Model: Uygulamanın veri yapısını ve iş mantığını temsil eder.
Örneğin, bir öğrenci bilgisi (ad, soyad, numara) bir model olabilir.
View: Kullanıcı arayüzünü (UI) temsil eder.
HTML ve Razor syntax kullanılarak oluşturulur.
Controller: Kullanıcı isteklerini işler ve Model ile View arasında köprü görevi görür.
Örneğin, bir kullanıcı bir sayfayı ziyaret ettiğinde, Controller bu isteği alır, Model'den veri çeker ve View'a gönderir.
1.Controller Oluşturma
Controller'lar, Controllers klasöründe bulunur. Yeni bir Controller oluşturmak için:
Controllers klasörüne sağ tıklayıp HomeController.cs
dosyasını oluşturun:
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
HomeController: Controller sınıfı.
Index(): Action metodu. Bu metod, bir View döndürür.
Views/Home klasörüne Index.cshtml
dosyası oluşturun:
<h1>Merhaba Dünya!</h1>
<p>Bu benim ilk ASP.NET Core projem.</p>
Tarayıcıda http://localhost:5000/Home/Index adresine giderek sayfayı görüntüleyin.
2.View ve Razor Syntax
Razor, HTML içinde C# kodu yazmamızı sağlayan bir syntax'tır. İşte bazı temel Razor örnekleri:
Değişken Tanımlama ve Kullanma:
@{
string mesaj = "ASP.NET Core'a Hoş Geldiniz!";
}
<p>@mesaj</p>
Döngüler ve Koşullar:
@{
var sayilar = new List<int> { 1, 2, 3, 4, 5 };
}
<ul>
@foreach (var sayi in sayilar)
{
<li>@sayi</li>
}
</ul>
Model Verilerini Görüntüleme:
Controller'dan View'a veri gönderme:
public IActionResult Index()
{
ViewBag.Mesaj = "Bu bir ViewBag örneği!";
return View();
}
View'da veriyi görüntüleme:
<p>@ViewBag.Mesaj</p>
3.Layout ve Shared View'lar
ASP.NET Core'da, tüm sayfalar için ortak bir şablon (layout) kullanılır. Bu
şablon, Views/Shared/_Layout.cshtml
dosyasında bulunur.
_Layout.cshtml dosyasını inceleyin:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div>
@RenderBody()
</div>
</body>
</html>
@RenderBody(): Bu ifade, diğer View'ların içeriğini buraya yerleştirir.
View'da Layout Kullanma:
Her View, _Layout.cshtml
şablonunu otomatik olarak kullanır. Eğer farklı bir
layout kullanmak isterseniz:
@{
Layout = "~/Views/Shared/_FarkliLayout.cshtml";
}
4.Partial View'lar
Partial View'lar, tekrar kullanılabilir küçük View bileşenleridir. Örneğin, bir menü veya footer için Partial View kullanabilirsiniz.
Partial View Oluşturma:
Views/Shared klasörüne _Menu.cshtml
dosyası oluşturun:
<ul>
<li><a href="/">Anasayfa</a></li>
<li><a href="/Home/Hakkimda">Hakkımda</a></li>
</ul>
Partial View'ı Kullanma:
@await Html.PartialAsync("_Menu")
5.Action Metotları ve Parametreler
Controller'da farklı Action metotları oluşturabilir ve bu metotlara parametreler ekleyebilirsiniz.
Parametreli Action Metodu:
public IActionResult Selamla(string isim)
{
ViewBag.Isim = isim;
return View();
}
Tarayıcıda Test Etme:
http://localhost:5000/Home/Selamla?isim=Ahmet adresine giderek sonucu görüntüleyin.