Как работать с областями в приложении MVC? Как создать такие области?



Үлкен проекттердің қойылымы үшін, ASP.NET MVC платформасы веб-қосымшаларды аймақтар деп аталатын шағын модульдерге бөлуге мүмкіндік береді. Аймақтар үлкен MVC веб-қосымшасын кішігірім функционалды топтарға бөлуге мүмкіндік береді. Аймақ қосымшаның(приложение) ішіндегі MVC құрылымы болып табылады. Қосымшада(приложение) бірнеше MVC (аймақ) құрылымдары болуы мүмкін.

Мысалы, бір үлкен коммерциялық бағдарламаны көрме(витрина), өнім шолуы, пайдаланушы тіркелгісін басқару жүйесі және сатып алу жүйесі болып табылатын аймақтарға бөлуге болады. Әр облыс тұтастай қосышаның(приложение) жеке функциясына сәйкес келеді.

Бұл қадамдық нұсқаулық MVC ASP.NET бағдарламасында аймақтарды қалай іске асыру керектігін көрсетеді. Ол веб-блогтар (блогтар) сайттары үшін төменде көрсетілген аймақтармен(область) функционалды платформа жасайды.

Main. Бұл веб-приложениеге кіру нүктесі. Аймақ бастау бетін және кіру функциясын қамтиды.

Blog. Бұл аймақ блог жазбаларын көрсету және архивте іздеу үшін қолданылады.

Dashboard. Бұл сайт блог жазбаларын жасау және өңдеу үшін пайдаланылады.

Аймақты құру.

Аймақ құралы жобадағы жаңа пакетті орнатуды талап етеді. NuGet консоль терезесінде келесі команданы енгізіңіз:

Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0 -projectname UrlsAndRoutes

Optimization пакеті жобада JavaScript және CSS файлдарын оптимизацияландыру үшін функционалдылықты қамтиды. Бұл пакет тікелей қолданылмайды, бірақ бұл аймақтардың жұмыс істеуіне әсерін тигізеді.MVC приложениесіне аймақ(область) қосу үшін, Solution Explorer-дегі UrlsAndRoutes жобасының жазбасын тінтуірдің оң жағымен басып, мәтінмәндік мәзірден Add -> Area-ны таңдаңыз. Visual Studio ортасы ауқымның атауын сұрайды. Аймақ атауын егізіңіз.

Бұл жағдайда біз Admin деп аталатын домен құрдық. Бұл аймақ жиі жасалады, өйткені Көптеген веб-қосымшалар пайдаланушы анықтайтын функцияларын әкімшілік бөлімдерден бөлуге тиіс. Облыс жасау үшін Add түймешігін басыңыз.

Areas / Admin папкасында MVC шағын жобасының бір түрі болады. Міне, Controllers, Models және Views.. Алғашқы екеуі бос, бірақ View папкасы Shared папкасын (және визуализация механизмін конфигурациялйтын Web.config файлы бар).

Как решить проблему неоднозначности контроллеров в приложении, созданного по технологии ASP.NETMVC?

ASP.NET үшін MVC Framework контроллері деп аталатын класс URL-мекенжайын салыстырады. Контроллерлері процесс кіріс сұрауларын, пайдаланушы кірісін және олардың іс-әрекеттерін, сондай-ақ қажетті өтініш логикасын іске асыру. Класс контроллері әдетте жауап HTML-санау жасайды жеке өкілдік компонентін туғызады.Барлық контроллерлер үшін базалық класс - бұл ControllerBase, жалпы MVC өңдеуді жүзеге асырады. Контроллер класс ControllerBase класстан мұра контроллері әдепкі іске асыру болып табылады. Контроллер класс келесі өңдеу қадамдарының үшін жауапты болып табылады: public class MyController : Controller{public ActionResult HelloWorld() {ViewData["Message"] = "Hello World!";return View(); }}Базалықкласс Controller бағдарламалыққамтамасызетуоныңмұрагерлікарқылыконтроллержасаукезінде, соданкейінсізөзиелігіндесұрауынабайланыстыақпаратқақолжеткізуүшіныңғайлымүмкіндіктержиынтығыбар. Бұлқасиеттерісұрауды RouteData, HttpContext және Server қамтиды.

Empty шаблоны арқылы ControllersAndActions деп аталатын MVC жобасын құрамыз. Біз Empty шаблонын таңдадық, себебі барлық контроллер мен көрсетілімдер құрамыз.

IController интерфейсінің көмегімен контролерді құру.

MVC фреймворкінде контроллер кластарын төмендегідей System.Web.Mvc атаулар кеңістігінің интерфейсі жүзеге асыру керек:

System.Web.Mvc.IController

Public interface IController

{void Execute(RequestContext requestContext);

}

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

Нақты HTTP нәтиже кодын жіберу

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

using System;

using System.Web.Mvc;


Дата добавления: 2018-02-15; просмотров: 218;