Что содержится в файле _Layout?



Негізгі бетті көріністе пайдалану үшін, Layout бөліміндегі талап етілетін басты бетке өту жолын көрсету керек. Мысалы, Index.cshtml көрінісінде негізгі бетті келесідей анықтай аласыз:

@{

Layout = "~/Views/Shared/_Layout.cshtml";

}

Егер басты бетті пайдаланбасаңыз, біз Layout = null;

Сондай-ақ, барлық көріністерге сол бір басты бетті пайдалану қажет емес. Бірнеше негізгі бетті анықтай аласыз, мысалы, біреуі форум үшін, біреуі блог үшін және т.c.c. және сайт бөлімдеріне байланысты қалағаныңызды қосыңыз. Олар жобаға, сондай-ақ кәдімгі көзқарастарға қосылады.

Басты беттe мазмұнын қоюға болатын бірнеше бөлімдер болуы мүмкін. Мысалы, негізгі бетке төменгі деректеме бөлігін қосыңыз:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>@ViewBag.Title</title>

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

</head>

 

<body>

<nav>

<ul class="menu">

<li>@Html.ActionLink("Главная", "Index", "Home")</li>

</ul>

</nav>

@RenderBody()

<footer>@RenderSection("Footer")</footer>

</body>

</html>

Алдыңғы Index көрсеткішін іске қосқан кезде, қате пайда болады, себебі Footer анықталмады. Әдепкіде, көрініс басты беттің әрбір бөліміне арналған мазмұнды тасымалдау керек. Сондықтан Индекс бөлімін төменгі деректеме бөлігіне қосыңыз. Мұны @section өрнегін қолданып жасай аламыз:

@{

Layout = "~/Views/Shared/_Layout.cshtml";

}

<!-- здесь остальное содержание -->

@section Footer {

Все права защищены. Syte Corp. 2012.

}

 

1.14.ASP.NET MVC технологиясы бойынша жасалған маршрутизация бағдарлама қалай жүзеге асады?

URL адрестердің қолданушымен анықталатын шаблондары маршруттар деп аталады. Маршруттарда URL сұраныстарының процесіне талдау кезінде алынатын, мәндерге сәйкес келетін толтыру орындары көрсетіледі. Толтыру орындарының маршруты({}) жүйелі жақшада қорытынды түрінде анықталады. Маршрутта анықталатын ақпараттар бірыңғай мәндер түрінде түсіндіріледі. Келесі кестеде маршруттардың мүмкін шаблондары және сол шаблонға сәйкес келетін URL сұраныстарының мысалдары көрсетілген:

Маршрутизацияға ерекше маршрутқа сәйкес келетін браузер сұраныстарының шектеулерін қоса аламыз. Мысалы, біздің жағдайда сандық болуы тиіс:

Маршрутты анықтау URL-адрестің сәйкестік мысалы
{controller}/{action}/{id} /Products/show/beverages
{table}/Details.aspx /Products/Details.aspx
blog/{action}/{entry} /blog/show/123
{reporttype}/{year}/{month}/{day} /sales/2008/1/5
{locale}/{action} /en-US/show
{language}-{country}/{action} /en-US/show

 

routes.MapRoute(

           name: "Role",

url: "roli/{action}/{id}",

defaults: new { controller = "Role", action = "Index", id = UrlParameter.Optional },

constraints : new {id = @"\d+"} );

"roli/{action}/{id}" жолы defaults бөлігінеконтроллератынбереді. Ал action параметр болып табылады

Қайта бағыттау бағдарламасы дегеніміз web парақшаны бір URL бойынша басқа бір URL-ға ауыстыру.Қайта бағыттауды белгілі бір жаңа парақшаны жаңа орынға ауыстыруды,сайттық URL адрестік www бөлігін алып тастауда немесе қолданушыны толығымен басқа сайтқа бағыттауда қолданған тиімді.Мысалы, біз өзіміздің web сайтымызды ауыстырдық немесе оны жапқымыз келеді,бірақ та бұрынғы сайттың барлық парақшалары 404 NOT FOUND деген қателікті шығармауын қалаймыз.Бұл үшін өзге бұрынғы сайттын мазмұнын, оның ішіндегі сілтемелерін жаңа сайтқа қайта бағыттау қажет.Әр уақытта біз URL бойынша бір парақшадан екінші парақшаға ауысамыз немесе браузерде сұранысты орындау арқылы орындаймыз. Браузерден сұранысты орындау үшін гипертексті жіберу хаттамасын қолданамыз. Сұраныстарды жібергеннен кейін http жауабын аламыз.http жауаптың бірнеше кодтары бар,ең танымалы 404 NOT FOUND.Әр бір http жауап 3 санмен белгіленеді.200 қателігін 2xx категориясына жатады немесе ол сәтті сұранысты білдіреді.3хх категориясы,оның ішінде 301multpermanintly.302 found қайта бағыттаудың мысалы.Response.Redirect(“/http/:kaznu.kz”) сайт адресі.

Басқа парақшаларға қайта бағыттаудың көптеген әдістері бар:

1)Парақшаны конфигурациялау көмегімен басқа парақшаға жіберу

2)Шолушыны динамикалық қолдану арқылы.Бұл сенарида сервер контексті басқа парақшаға жібереді кемшілігі шолушы туралы білмейді немесе шолушы журналы жаңартылмайды. Қасиеттері:Көрсету күйі,элеметті басқару күйі,жасырын өрістер,кіші файлдар сұраныс жолдары,қосымша күйі,сеаныс күйі,профиль қасиеттері. ASP.NET күйі арқылы мәліметтерді сақтауға мүмкіндік береді.Сеаныс күйі,бұл күйлерді басқарудың ең қиын технологиясы,ол мәліметтерді бір бетте сақтап,одан кейін оны басқа парақшадан алуға мүмкіндік береді,сонымен қатар объектінің кез келген типін қолдайды.Сеаныс күйі арқылы келесідей есепті шешуге болады.

-шолушының уникальды сұраныстарын анықтауда;

-клиенттік құралдарды анықтауда;

-серверде мәліметтерді сеанысқа тейістісін шолушының біренеше сұраныстарын орындауда сақтау.

1.15.ASP.NET MVC технологиясын қолданып жасалған веб-сайттың реті туралы айтып беріңіз?

MVC - біздің қолдану саламызды, осы құрылымдағы әрбір бөліктің жауапкершілігі мен өзара әрекеттесуін сипаттайды. Алғаш рет 1979 жылы басқа ортада сипатталған.

Ол уақытта веб-қосымшаның тұжырымдамасы болмады. Тим Бернерс Ли 90-шы жылдардың басында World Wide Web (WWW)-тің негізін салды. Бүгінгі қолданатын үлгі бастапқы веб-әзірлеудің үлгісіне бейімдеу болып табылады
Веб-қосымшалардағы бұл құрылым оның екі дамыған ортада болуына байланысты танымал болы: Struts және Ruby on Rails. Бұл екі даму ортасы кейінірек құрылған жүздеген жұмыс ортасы үшін дамыту жолдарын белгіледі. 

Web қосымшалар үшін MVC:MVC дизайн үлгісінің идеясы өте қарапайым:біздің қосымшаларымызда әр түрлі жұмыс істеу үшін жауапкершілікті нақты ажырата білу қажет. Қосымша  үш негізгі компонентке бөлінеді, олардың әрқайсысы түрлі тапсырмалар үшін жауапты. Компоненттерді егжей-тегжейлі қарастырайық.Контроллер пайдаланушы сұрауларын басқарады (HTTP GET немесе POST сұраулары ретінде қабылданады, егер пайдаланушы әртүрлі әрекеттерді орындау үшін интерфейс элементтерін басқанда). Оның басты функциясы - пайдаланушы көрсеткен әрекеттерді орындау үшін қажетті ресурстар мен объектілердің әрекетін шақырту және үйлестіру. Әдетте, контроллер тапсырманы орындау үшін сәйкес модельді шақырады және тиісті көріністі таңдайды.Модель - бұл деректерді өңдеу және басқарудың тұжырымдамасын білдіретін деректермен жұмыс істеу үшін қолданылатын ережелер. Кез келген қолданбада барлық құрылым белгілі бір түрде өңделетін деректер ретінде модельденеді. Қолданбаға арналған пайдаланушы қандай - хабар немесе кітап? Ережелерге сәйкес өңдеу қажет деректер ғана (күн болашаққа нұсқау бере алмайды, электрондық пошта белгілі бір пішімде болуы керек, аты X таңбаларынан ұзын болмауы және т.б.).Модель контроллерге пайдаланушы сұраған мәліметтердің (хабар, бет кітап, фотоальбом және т.б.) ұсынылуын береді. Деректер үлгілері пайдаланушыға қалай ұсынғымыз келетініне қарамастан, бірдей болады. Сондықтан, деректерді көрсету үшін қол жетімді көріністі таңдаймыз.Модельде біздің өтініміміздің қисыны маңызды бөлігі, логика, біз айналысатын мәселені шешеді (форум, дүкен, банк және т.б.). Контроллер, негізінен, қосымшаның өзіндік ұйымдастыру логикасын (үй шаруашылығына өте ұқсас) қамтиды.Көрініс модельден алынған деректерді ұсынудың әр түрлі жолдарын ұсынады. Бұл деректермен толтырылған үлгі болуы мүмкін. Бірнеше түрлі болуы мүмкін, және контроллер ағымдағы жағдайға қайсысы қолайлы екенін таңдайды.Веб-бағдарлама әдетте контроллерлердің, модельдердің және көріністердің жиынтығынан тұрады. Контроллер барлық сұрауларды қабылдайтын және жағдайға байланысты әрекеттерді орындау үшін басқа контроллерлерді шақыратын негізгі контроллер ретінде конфигурациялануы мүмкін.
Қандай артықшылықтар бар? MVC тұжырымдамасын қолданудан туындайтын айқын артықшылығы - презентация логикасын (пайдаланушы интерфейсі) және бағдарлама логикасын айқындау. Әртүрлі құрылғыларды қолданатын әр түрлі пайдаланушыларға қолдау көрсету біздің күндеріміздің ортақ мәселесі болып табылады. Егер сұрау дербес компьютерден немесе ұялы телефоннан алынса, берілген интерфейс әр түрлі болуы керек. Модель бірдей деректерді қайтарады, тек айырмашылығы, контроллер деректерді шығару үшін түрлі көріністерді таңдайды. Қолданба логикасынан оқшауланған көзқараспен қатар, MVC концепциясы үлкен қосымшалардың күрделілігін айтарлықтай азайтады. Кодекс әлдеқайда құрылымдалған болып шығады және, демек, шешімдерді қолдау, тестілеу және қайта пайдалану жеңілдетіледі. 1.16. Global.asax файлы неге арналған?

Global.asax файлы жаһандық оқиғаларға жауап беретін оқиғалар өңдегіштерін жазуға мүмкіндік береді. Пайдаланушылар global.asax файлын тікелей сұрау мүмкін емес. Global.asax файлы белгілі бір бағдарлама оқиғаларына жауап ретінде өз кодын автоматты түрде орындайды.

Global.asax файлындағы код веб-пішінге дәл сол сияқты жазылған. Айырмашылық, global.asax файлында HTML немесе ASP.NET дескрипторлары болмайды. Оның орнына, алдын-ала анықталған атаулары бар әдістер бар.

<%@ Application Language="C#" %>

<script runat="server">

protectedvoidApplication_OnEndRequest()

{   Response.Write("<hr />Этастраницабылазагружена " + DateTime.Now.ToString()); }

</script>

Бұл көрсетілген кодта көрсетілмегенімен, әрбір әдіс бір класс үшін қолданылатын жаһандық әдістерді анықтайды. Қолданба класы HttpApplication бағдарламасынан мұраланған, ол барлық ашық және қорғалған мүшелерімен кодта жұмыс істеуге мүмкіндік береді. Бұл мысалда, Respect нысаны пайдаланылады, ол HttpApplication сыныбының кіріктірілген сипаты, Бет сыныпының кірістірілген сипаты сияқты, пайдаланылады.

Веб-пішіндер сияқты, global.asax файлының мазмұны екі файлға бөлінуі мүмкін: біреуі декларациямен, екіншісі кодпен тікелей. Дегенмен, global.asax файлдарының дизайны беті қамтамасыз етілмегендіктен, бұл қажет емес, сондықтан Visual Studio бөлінген код сыныбы бар global.asax файлын жасау параметрін ұсынбайды.

Егер веб-қосымшаны веб-жоба ретінде жасасаңыз, Visual Studio бөлінген кодты қолданады және екі файлды жасайды: global.asax (ол дерлік бос болады) және байланысқан global.asax.cs (барлық оқиғалар өңдегіштері бар қолданбалы класс бар) ). Нәтиже дәл осындай болады.

Global.asax файлы міндетті емес, бірақ әрбір веб-бағдарламаға оның бір ішкі каталогында емес, бағдарламаның түбірлік каталогында болуы керек бірден көп global.asax файлы болмауы керек. Global.asax файлын жобаға қосу үшін Веб-сайт мәзірінен Жаңа элементті қосу пәрменін таңдаңыз (немесе веб-жобаның үлгісін қолданып жатсаңыз, Project мәзірінде) және Global Application Class үлгісін көрсетіңіз ( Global қосымшалар класы). (Егер жобада global.asax файлы бар болса, бұл үлгі көрсетілмейді.)

Оқиғалар

Оқиғалардың келесі екі түрі global.asax файлында өңделуі мүмкін:

- әр сұрау үшін әрдайым болған оқиғалар. Мұндай іс-шараларға сұрау салумен байланысты оқиғалар және жауапқа қатысты оқиғалар жатады;

- белгілі бір жағдайларда ғана болатын оқиғалар.

Қажетті оқиғалар келесі тәртіпте жүргізіледі:

- Application_BeginRequest (). Бұл әдіс әр сұраудың басында шақырылады.

- Application_AuthenticateRequest (). Бұл әдіс түпнұсқаландыру жүргізілгенге дейін аталады. Бұл өзіңіздің аутентификация логикасын жасаудың бастапқы нүктесі.

- Application_AuthorizeRequest (). Пайдаланушы түпнұсқаландыру рәсімінен өткеннен кейін (анықталатын болады), пайдаланушының құқықтарын анықтау қажет болады. Арнайы артықшылықтарды тағайындау үшін осы әдісті қолдануға болады.

- Application_ResolveRequestCache (). Бұл әдіс әдетте шығу кэштеуімен бірге қолданылады. Шығарылған деректер кэштелгенде, веб-пішіннің жасалған HTML коды сіздің кодыңыздың біреуін орындаусыз қайта пайдаланылады. Дегенмен, бұл оқиға өңдеуші жұмысын жалғастыруда.

1.17.ASP.NET MVC технологиясы арқылы жасалған бағдарламада деректер қалай сүзіледі(фильтрацияланады)?

Кейде бағдарламаға кейбір логиканы енгізуге тура келеді, ол контроллердің әрекеттеріне дейін шақырылуы керек. Атап айтқанда, мысалы, пайдаланушы белгілі бір контроллердің белгілі бір әрекетін шақырады және біз пайдаланушыға рұқсат беріле ме, соны тексеріп, нақты әрекеттерді орындауға тиіспіз. Ол үшін сүзгілерді қолданыңыз.

Сүзгілер атрибут ретінде іске асырылады, осылайша контроллердегі кодтың мөлшерін азайтады. Бұл атрибуттар бүкіл классқа, сондай-ақ жеке әдістеріне, сипаттарына және өрістеріне қолданылуы мүмкін. Мысалы, егер бізде HomeController болса, біз тек рұқсаты бар пайдаланушыларға кіруге рұқсат етеміз. Бұл жағдайда келесі атрибутты қолдануға болады:

[Authorize]

public class HomeController : Controller

{

//................................

}

Бұл жағдайда [Authorize] атрибуты авторлау сүзгісін пайдаланады. Егер біз осы сүзгіні қолданбаған болсақ, онда пайдаланушыға авторизацияланған немесе жоқ екенін растау логикасын қолмен жазу керек.

Сүзгілерді қолдану

Жоғарыдағы мысалдан көргеніңіздей, сүзгіні қолдану үшін атрибутты контроллер класының үстінен қою қажет - бұл жағдайда бұл сүзгі осы контроллердің барлық әдістеріне қолданылады.

Бірақ, жоғарыда айтылғандай, сүзгіні бір әдіс деңгейінде қолдануға болады:

public class HomeController : Controller

{

[Authorize]

public ActionResult Index()

{

ViewBag.Message = "Привет мир!";

 

return View();

}

}

Сүзгілердің негізгі түрлері

MVC 5-де сүзгілердің бірнеше түрі бар:

Аутентификация-IauthenticationFilter-Клиенттің аутентификацияланғаның немесе аутентификацияланбағаның анықтайтын сүзгі. Бұл сүзгі кез келген басқа сүзгі немесе әрекет әдісі орындалмастан бұрын іске қосылады.

Авторизация-IauthenticationFilter-Пайдаланушының осы ресурсқа қатынасы бар-жоғын анықтайтын сүзгі. Бұл сүзгі түпнұсқалықты растау сүзгісінен кейін іске қосылады, бірақ кез келген басқа сүзгіден немесе әрекет ету әдісінен бұрын орындалады.

Әрекет сүзгілері-IactionFilter-Әрекеттерге қолданылған сүзгі. Оны əрекет əдісін орындау алдында да, кейін де іске қосуға болады

Әрекет нәтижесі сүзгілері- әрекеттердің нәтижелеріне қолданылады. Бұл әрекеттің алдында және одан кейін іске қосылуы мүмкін

Ерекшелік сүзгілері-IexceptionFilter-Әрекет әдісі мен әрекеттердің нәтижесі арқылы шығарылған ерекше жағдайларды өңдейтін төлсипат.

Әр фильтрді анықтау үшін , сәйкес интерфейстерін орындау керек.

Әрекет әдісін шақырғанда, MVC құрылымы алдымен осы әрекетке қандай да бір атрибуттар қолданылатындығын және егер ол қолданылса, онда олар осы атрибуттарды өңдей бастайды.

1.18.ASP.NET MVC технологиясы арқылы жасалған бағдарламада контроллер қалай құрылады?

Контроллер фабрикасыіздеу салуды орындау үшін контроллер экземплярын құруға жауап береді.

Контроллер фабрикасы сұрауды қамтамасыз ету үшін контроллерлердің даналарын жасауға жауапты. Әрекетті белсендіруші контроллер сыныбында әрекет әдісін іздейді және шақырады. MVC Framework осы компоненттердің екеуінің де стандартты іске асырылуын қамтиды және біз олардың мінез-құлқын теңшеуді көрсетеміз. Біз сондай-ақ осы компоненттерді өзіміздің арнайы логикамен толығымен алмастыруды түсіндіреміз.

Қолданба үлгісі

Осы және кейінгі мақалалар үшін біз Бос үлгісін қолданып, MVC құсбелгісін қойып, ControllerExtensibility деп аталатын жаңа MVC жобасын жасадық. Бөлім үшін қалталарды қосу және негізгі сілтемелер. Мұнда инфрақұрылымда қол жетімді кеңейту мүмкіндіктерінің әртүрлі түрлерін көрсету үшін бірқатар қарапайым контроллерлермен жұмыс істейміз.

Бастау үшін, Модельдер қалтасында төмендегі мысалда көрсетілгендей Нәтиже класының анықтамасын қамтитын Result.cs файлын жасау керек:


Дата добавления: 2018-02-15; просмотров: 209; ЗАКАЗАТЬ РАБОТУ