XML HUJJATLAR. XML HUJJAT HOSIL QILISH. SYSTEM.XML
SINFI BILAN ISHLASH
Tarkibni ko'rinishda ko'rsatish uchun biz bloklar, ro'yxatlar, jadvallar va
boshqalarni yaratishga imkon beradigan standart HTML elementlaridan
foydalanishimiz mumkin. Belgilashni yaratish uchun html-elementlardan tashqari
biz maxsus usullardan ham foydalanishimiz mumkin - html-yordamchilar.
Umuman olganda yordamchini inglizchadan "yordamchi usul" deb tarjima qilish
mumkin. Va aslida HTML yordamchilari yordamchi usullar bo'lib, ularning
maqsadi HTML formatini yaratishdir.
Oddiy HTML yordamchisini yaratish uchun veb-dastur turidagi ASP.NET
Core loyihasini oling (Model-View-Controller) va unga App_Code papkasini
qo'shing. Keyin ushbu papkaga yangi ListHelper sinfini qo'shing:
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace HtmlHelpersApp.App_Code
{
public static class ListHelper
{
public static HtmlString CreateList(this
IHtmlHelper html, string[]
items)
{
string result = "
";
return new HtmlString(result);
}
}
}
Yangi yordamchi sinf bitta statik usulni yaratadi, bu usul yaratilayotgan
ob'ektni
birinchi
parametr
sifatida
qabul
qiladi.
Ushbu
usul
Microsoft.AspNetCore.Mvc interfeysi taqdim etadigan HTML yordamchilarining
funktsiyalarini kengaytiradi. Renderlash. IHtmlHelper, demak u birinchi parametr
sifatida ushbu holatda uzatiladigan ushbu turdagi ob'ektdir. CreateList usulining
ikkinchi parametri qatorlar qiymatlari massivi bo'lib, ular keyinchalik ro'yxatda
ko'rsatiladi. Usulning o'zida biz oddiygina qatorlar qatoridan o'tamiz va ulardan
html belgisini string sifatida hosil qilamiz. Usul natijasi htmlString ob'ekti bo'lib,
html belgisini konstruktor tarkibidagi satr sifatida qabul qiladi.
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace HtmlHelpersApp.App_Code
{
public static class ListHelper
{
public static HtmlString CreateList(this
IHtmlHelper html, string[]
items)
{
string result = "
";
return new HtmlString(result);
}
}
}
Yangi yordamchi sinf bitta statik usulni yaratadi, bu usul yaratilayotgan
ob'ektni birinchi parametr sifatida qabul qiladi. Ushbu usul Microsoft.AspNetCore
interfeysi ko'rsatadigan HTML yordamchilarining funktsiyalarini kengaytiradi.
Mvc. Renderlash. IHtmlHelper, demak u birinchi parametr sifatida ushbu holatda
uzatiladigan ushbu turdagi ob'ektdir. CreateList usulining ikkinchi parametri
qatorlar qiymatlari massivi bo'lib, ular keyinchalik ro'yxatda ko'rsatiladi.
Usulning o'zida biz oddiygina qatorlar qatoridan o'tamiz va ulardan html
belgisini string sifatida hosil qilamiz. Usul natijasi htmlString ob'ekti bo'lib, html
belgisini konstruktor tarkibidagi satr sifatida qabul qiladi.
Ushbu juda oddiy usul allaqachon sizning ishingizni markup yordamida
soddalashtirishi mumkin. Keling, undan foydalanishni ko'rib chiqaylik. Keling,
ro'yxatda qatorlar qatorini ko'rsatishimiz kerak deylik:
@{
ViewData["Title"] = "Home Page";
}
@{
string[] cities = new string[] { "Лондон", "Париж",
"Берлин" };
string[] countries = new string[] {
"Великобритания", "Франция", "Германия"
};
}
@using HtmlHelpersApp.App_Code
Города
@Html.CreateList(cities)
Страны
@ListHelper.CreateList(Html, countries)
Поскольку html-хелпер представляет метод расширения для объекта
HtmlHelper, то для его применения нам достаточно написать Html.CreateList
и передать в метод необходимые параметры. Либо мы можем вызвать его как
метод класса, в котором он определен: ListHelper.CreateList
И теперь, если мы захотим создать список
, нам достаточно будет
написать одну строку с вызовом хелпера, передав ему массив:
При отсутствии подобного хелпера, то нам бы пришлось по сути
дублировать один и тот же html-код для создания списка. Однако этот хелпер
еще довольно простой, а если нам приходится создавать по сто раз более
сложную, но однотипную разметку html, тогда хелперы окажутся еще более
полезными.