«Shared» papkasi Ushbu papka quyidagicha fayllarga ega:
_Layout.cshtml
_Layout.cshtml.css
_ValidationScripts.cshtml
Error.cshtml
Ma’lumki barcha HTML shabloniga ega sahifalar bir xil ko’rinishda tasvirlanadi: … va ko’pgina holatda barcha sahifalarning header va footer qismlarning dizayni ham bir xil ko’rinish kasb etadi. Biz esa loyihamizda foydalaniladigan view lardagi ushbu doim takrorlanuvchi kodlardan xalos bo’lish uchun, takrorlanuvchi kodlarni _Layout.cshtml faylida saqlaymiz.
_ViewImports.cshtml fayli Dinamik view lar controller tomonidan yuborilgan ma’lumotlarni o’zida saqlaydi va bu ma’lumotlar odatda C# sinflari ko’rinishida bo’lishi mumkin. _ViewImports.cshtml fayli esa mana shu C# sinflarning nomlar fazo (namespace) larini o’zida saqlaydi. Odatiy holda ushbu fayl quyidagicha ko’rinishga ega bo’ladi:
@using @using .Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
_ViewStart.cshtml fayli Faylning nomidan ham anglab olish mumkin-ki, ushbu fayl ko’rinish qismida ilk ishga tushadigan kodni o’zida saqlaydi:
@{
Layout = "_Layout";
}
Yuqoridagi kod har bir sahifa uchun HTML shablonini hosil qiluvchi _Layout.cshtml faylini ishga tushirishni ta’minlaydi. Shu o’rinda savol tug’ilishi mumkin. Nega endi birdaniga _Layout.cshtml faylini ishga tushirmaslik kerak ?
Sababi, barcha sahifalar … kabi kod bilan boshlanishi mumkin, ammo ularning header va footer qismlarning tuzilishi va dizayni farq qilish ehtimoli ham yo’q emas. Shu sababdan avval qaysi layout viewni ishga tushirishni aniqlab, so’ng fayl ishga tushiriladi.
Model Ravshan Sodiqov
Model - ASP.NET MVC strukturasida modellar biznes logikani saqlovchi sinflardir. Ushbu sinflar loyihalarda saqlanadigan har qanday ma’lumotlarning modellarini yaratgan holda ulardan osongina foydalanish imkonini beradi. Ya’ni, loyihada qanday ma’lumot almashinuvi mavjud bo’lmasin, ularning barchasi «Models» papkasida sinflar ko’rinishida saqlanadi.
Faraz qilaylik, loyihada foydalanuvchilarga hisob yaratish, yaratilgan hisob ma’lumotlarini tahrirlah va hisobdan chiqish imkoniyatlarini bersin. Bunda biz har bir foydalanuvchiga oid ma’lumotlar: ID, Firstname, Lastname, Email va Password kabi ma’lumotlarni saqlashimiz uchun, aynan mana shunday xususiyatlarga ega sinfni «Models» papkasida yaratishimiz kerak bo’ladi.
public class User
{
public Guid Id {get; set;}
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
public string Password {get; set;}
}
Yuqoridagi sinf umumiy biznes logikani saqlab qolgan holda, foydalanuvchilar ma’lumotlarining oson almashuvini ta’minlashda yordam beradi.