Namespace WorkingWithRazor.Infrastructure



{ public class CustomLocationViewEngine : RazorViewEngine

{ public CustomLocationViewEngine()

   {

       ViewLocationFormats = new string[] { "~/Views/{1}/{0}.cshtml",

           "~/Views/Common/{0}.cshtml" };

   }

} }

Как осуществить визуализацию необязательных разделов в представлении, где работает механизм Razor?

Әдепкі бойынша, көріністе орналасудағы RenderSection () қоңыраулары бар барлық бөлімдер болуы керек. Егер бөлім жоқ болса, MVC Framework бұл туралы пайдаланушыға ескерту жасайды. Бұны көрсету үшін, Scripts деп аталатын бөлікке арналған RenderSection () жаңа қоңырауы _Layout.cshtml файлына қосылады. MVC үлгісі MVC үлгісін қолданып жасалғанда, көрсетілген бөлім әдепкі Visual Studio ортасы бойынша орналасуға қосылады.

<!DOCTYPE html>

<html>

<head>

...

</head>

<body>

...

@RenderSection("Scripts")

<div class="layout">

Этот текст находится в компоновке

</div>

</body>

</html>Көріністе анықталмаған бөлімдерге арналған RenderSection () шақырылуын болдырмау үшін IsSectionDefined () әдісін қолдануға болады, бірақ false әдіс RenderSection () әдісіне жалғанның қосымша мәнін жіберетін қосымша бөлімдерді пайдалануды қамтиды..

@RenderSection("Scripts", false)Бұл көрініс анықталған болса және оның жоқтығы ерекше жағдайға алып келмейтін болса, мазмұны нәтижеге енгізілетін қосымша бөлім жасайды.Көп жағдайларда Razor дескрипторларының бірдей фрагменттерін және қолданбадағы әр түрлі орындарда HTML-ні түзету қажет. Мазмұнды қайталамаудың орнына, жартылай ұсынулар қолданылуы мүмкін. Бұл басқа көріністерге енгізілуі мүмкін дескрипторлар мен белгілеулердің фрагменттері бар бөлек қарау файлдары.

Как создать и использовать частичное представление, где работает механизм Razor?

ASP.NET MVC ішіндегі көрініс тек стандартты html кодын ғана емес, C # -де кодты кірістіру де болуы мүмкін. Html элементтері мен C # құрылымдарын қамтитын кодты өңдеу үшін көрініс меха- низмі пайдаланылады.

Шын мәнінде, Көрініс әдісі деп атасаңыз, контроллер көріністі көрсетпейді және html белгілеуін жасамайды. Контроллер деректерді ғана дайындайды және ViewResult нысаны ретінде қандай көріністі қайтару керек екенін таңдайды. Содан кейін, ViewResult нысаны көріністі көрсетуге арналған презентациялы механизмге шығады.рейти на русскийТранслитерироватьӘдепкіде, ASP.NET MVC Core бір қарап шығу механизмін пайдаланады, Razor. Қажет болса, біз басқа да үшінші тарап қозғалтқыштарын қолданамыз немесе өзіңіздің жеке презентацияларыңызды жасай аласыз.

Razor қарау механизмінің мақсаты html таңбаларынан C # кодының өтуін анықтау болып табылады.

Разордың синтаксисі өте қарапайым - оның барлық құрылымдары алдындағы @ символы, одан кейін ол C # кодынан бұрын орын алады.

Барлық Razor конструкциялары шартты түрде екі түрге бөлінеді: бір жолақты өрнектер және код блоктар.

Бір жолғы өрнектерді қолданудың мысалы:<p> Күні: @ DateTime.Now.ToLongDateString () </ p>

Бұл жағдайда DateTime нысаны және оның ToLongDateString () әдісі пайдаланылады

Немесе тағы бір мысал:

<p> @ (20 + 30) </ p>

Жақшаның алдында @ таңбасы болғандықтан, жақшалардағы өрнек C # өрнегі ретінде түсіндіріледі. Сондықтан браузер 50 емес, «20 + 30» көрсетеді.

Бірақ егер кенеттен біз @ символы Razor синтаксисінің бөлігі ретінде емес, өздігінен болса, онда біз оны көрсету үшін оны қайталаймыз:<p>@@DateTime.Now =@DateTime.Now.ToLongDateString()</p>

русскийТранслитерироватьКод блоктарында бірнеше өрнек болуы мүмкін.

Егер айнымалы мәнді html элементтері болмаса, онда біз арнайы <text> үзіндісін пайдалана аламыз:

@ {

int i = 8;

<text> @i </ text> }

<text> @ (i + 1) </ text>

Пікірлерді Razor-да қолдануға болады. Олар символдар арасында орналасқан @ @ **:

@ * түсініктеме мәтіні * @

Код блокындағы мәтінді шығару

Кодтың блогында кәдімгі мәтінді шығара алмаймыз:

@ { bool isEnabled = true;}

@if (isEnabled)

{қош келдіңіз }

Бұл жағдайда Razor «Welcome» жолын C # -тегі C # -де жоқ, сондықтан қате аламыз. Мәтінді код блогында болғандай басып шығару үшін @ өрнегін пайдалану керек

@ { bool isEnabled = true;

}

@if (isEnabled)

{ @: Қош келдіңіз}

Какие действия нужно совершить для использования строго типизированных частичных представлений?

Жай представлениялармен бірге частичные представлениялар қолданылады.

Олардың жай представлениялардан айырмашылығы: оларды жай представлениялардың ішіне енгізсе болады және олар Ajax-сұраныстарының нәтижелерін өңдейді.

Частичный представленияларды PartialView() әдісінің PartialViewResult() объектісі қайтарады. Мысал:

public ActionResult Partial(){

ViewBag.Message = “Частичный представленияның шақырылуы”;

return PartialView();

}Осыдан біз оның Partial деген представлениясын құрамыз және оған келесіні жазамыз:

<h1>@ViewBag.Message</h1>

Нәтижесінде ViewBag-тің мәліметі шығады. Частичный представленияларда мастер страница болмайды.

Строго типизированные частичные представления:

@modelIEnumerable<string>

<h2>Список стран</h2>

<ul>

@foreach (string t in Model)

{

<li>@t</li> }

</ul>

Сонда біз осы представленияны былай шақыра аламыз:

@Html.Partial("Partial", new string[] { "Russia", "USA", "Canada", "France" })


Дата добавления: 2018-02-15; просмотров: 313; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!