ASP.NET Core Razor Pages
ASP.NET Core ile birlikte gelen Razor Pages veya Razor sayfaları nedir, kullanımı ile ilgili bilgiler yer alıyor.
Razor Pages nedir?
Razor Pages WebForms gibi hızlı ve kolay uygulama geliştirmek için kullanılan yeni bir web uygulama geliştirme yöntemidir.
Razor sayfaları ile uygulama geliştirmek için öncelikle .NET Core SDK kurulumunun yapılması gerekir.
Kurulum ve kullanım hakkında detaylı bilgi için .NET Core Kurulumu ve Kullanımı yazıma bakabilirsiniz.
Neden kullanılır?
ASP.NET içerisinde yer alan MVC yapısı ile geliştirme yapmak kolay olsa da küçük çaplı uygulamalarda bazen bu yapının kullanılması gerekmeyebilir.
MVC yapısı için sırasıyla Model, Controller ve View yapılarının oluşturulması ve ORM araçlarının kullanılması gerekir.
Bu işlemler küçük çaplı web uygulamalarında gereğinden fazla geliştirme yapmaya neden olur.
Bu gibi durumlarda razor sayfalarının kullanılması faydalı olacaktır.
Kullanımı
.NET Core CLI aracıyla Razor Pages projesi oluşturmak için aşağıdaki komutu işletim sistemi komut yorumlayıcısına yazmak yeterli olacaktır.
dotnet new webapp
Komut önceden hazırlanmış ASP.NET Core Razor Pages yapısını oluşturur.
NOT: Razor sayfaları arka planda MVC yapısını kullanır.
Oluşturulan yapı içerisinde Pages adında bir klasör ve razor sayfaları yer alacaktır.
Bu dosyalar incelendiğinde Index.cshtml ve Index.cshtml.cs yapısına benzer dosyalar görünecektir.
Razor sayfalarında dikkat edilmesi gereken en önemli kısım .cshtml dosyalarının başına @page eklemek olacaktır.
Razor sayfalarının diğer önemli bir özelliği MVC yapısında kullanılan View Engine yapısının ve komutların kullanılmasıdır.
Bu sayede Shared klasöründe _Layout.cshtml ile şablon oluşturulabilir.
_ViewStart.cshtml ve _ViewImports.cshtml ile proje için gerekli dosyalar dahil edilebilir.
Razor sayfalarında veritabanı uygulamaları geliştirmek ve form işlemleri yapmak için Model yapısını kullanır.
Model yapısını kullanmak için @model ile razor sayfasına dahil edilir.
Bu model genellikle razor sayfası adı ile aynı ada sahip .cshtml.cs dosyalarında yer alır.
Model içerisine eklenen özellikler daha sonra razor sayfalarında kullanılabilir.
Örneğin Index.cshtml.cs dosyasına aşağıdaki özelliği ekleyelim.
public string Mesaj { get; set; } = "Merhaba dünya";
Daha sonra bu özelliği Index.cshtml içerisinde aşağıdaki gibi kullanalım.
<h1>@Model.Mesaj</h1>
Ekranda özellik değeri görünecektir.
Ayrıca aşağıdaki gibi .NET komutlarını da kullanabiliriz.
<h1>@DateTime.Now</h1>
İsteklerin yönetimi
Web sayfalarına GET, POST, DELETE, PUT gibi HTTP yöntemleri ile istek gönderilir.
Bu istekleri yönetmek için Razor sayfaları handler olarak adlandırılan bir yapıyı kullanılır.
Bu yapı sayesinde sayfaya gelen GET istekleri için OnGet veya OnGetAsync metodu çalıştırılır.
Diğer isteklerde OnYontem, OnYontemAsync metotları çalıştırılır.
Örneğin; Yukarıda yer alan mesaj özelliğini GET yöntemi geldiğinde aşağıdaki gibi değiştirebiliriz.
public class IndexModel : PageModel {
public string Mesaj { get; set; }
public void OnGet() {
Mesaj = "Merhaba dünya";
}
}
Benzer şekilde POST yöntemi ile gönderilen form verileri Model Bind yöntemi ile alınarak işlemler yapılabilir.
.NET Core Razor Pages ile ilgili örneğe buradan ulaşabilirsiniz.
.NET Derslerine buradan ulaşabilirsiniz.
Hayırlı günler dilerim.