IResultFilter- результат фильтрі



IExceptionFilter- шектеу фильтрі

Как осуществляется добавление динамического контента к представлению Razor?

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

Razor движогы секциялар концепциясын ұстанады. Razor секциялары көрсетілімдерді бөліктерге бөліп, оларды басқаруға көмектеседі.

@model string[]

@{ ViewBag.Title = "Index"; }

@section Header {

<divclass="view">

@foreach (string str in new[] { "Home", "List", "Edit" })

{

@Html.ActionLink(str, str, null, new { style = "margin: 5px" })

}</div>}

<divclass="view">

 This is a list of fruit names: @foreach (string name in Model) { <span><b>@name</b></span> }

</div>@section Footer {<divclass="view">

This is the footer</div>}

Секциялар @Razor тегі арқылы анықталады. Соған байланысты секцияның аты негізделеді. Біздің жағдайымызда олар екеу – Header және Footer. Секциялардың көрінетінін анықтау үшін @RenderSection әдісі қолданылады.

<!DOCTYPE html>

<html>

<head>

<metacharset="utf-8" />

<metaname="viewport"content="/>

<styletype="text/css">div.layout{ background-color: lightgray;}

div.view{ border: thin solid black;margin:10px 0;}

</style>

<title>@ViewBag.Title</title>

</head>

<body>

@RenderSection("Header")

<divclass="layout"> This is part of the layout </div>

@RenderBody()<divclass="layout"> This is part of the layout </div>@RenderSection("Footer")<divclass="layout"> This is part of the layout </div></body>

</html>

Секцияда бар көрсетілімдер RenderSection көмекші әдісінің көмегімен, ал секцияда жоқтары RenderBody әдісінің көмегімен жүзеге асады.

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

Razor өрнегі көмегімен жасалатындардың ең қарамайымы- белгіге мәліметтердің мағынасын қою. Бұл @Model өрнегін қолдану арқылы іске асырылады, ол көрініс моделінің объектінде анықталған қасиеттер мен әдістерге немесе ViewBag объектісінің көмегімен динамикалық түрде анықталған қасиеттерге @ViewBag -өрнегі арқылысілтеме жасайтын болады.

Толық болу үшін Home-ға ViewBag обьектісі және модель обьектісімен қолданатын мәліметтерді ұсынысқа жіберетін DemoExpressionsдеп аталатын іс әрекеттің жаңа әдісін қосамыз.

Using System.Web.Mvc;

Using Razor.Models;

Namespace Razor.Controllers{

public class HomeController: Controller{

public ActionResult DemoExpression() {

 ViewBag.ProductCount=1;

ViewBag.ExpressShip=true;

ViewBag.ApplyDiscount=false;

ViewBag.Supplier=null;

return View(myProduct);

}

}

Бұл базалық типтердің өрнегін көрсету views/home папкасында орналасқан DemoExpressions.cshtml деп аталатын қатаң типті файлдағы ұсыныс құрылған.

@model Razor.Models.Product

@{

ViewBag.Title=”DemoExpression”;

Layout=”~/Views/_BasicLayout.cshtml”;

}

<table>

<thead>

<tr><th>Свойство </th><th>Значение </th></tr>

</thead>

<tbody>

<tr><td>Название</td><td>@ModelName </td></tr><tr><td>Цена</td><td>@Model.Price</td></tr>

<tr>

<td>Вналичий</td>

<td> ViewBag.ProductCount</td>

</tr>

</tbody>

</table>

Как осуществить проверку существования разделов в

Представлении, где работает механизм Razor?

Razor-де барлық MVC қосымшалары талап ететін функционалдылық бар.Арнайы визуализациялау механизмін құру қажеттілігі проекттердің аз бөлігінде ғана кездеседі.

MVC қосымшасындағы ұсыныстар

Қосымшаны іске қосқанға дейін компиляцияланбайды,себебі Razor арқылы құрылған класстарды көру үшін қосымшаны іске қосып /Home/Index бөліміне өту керек. MVC қосымшасындағы бастапқы сұраныс барлық ұсыныстар үшін компиляциялау процесін жасайды.

Сонымен қатар ұсыныстарды іздеу барысында Razor визуализациялау механизмі стандартты шаблон бойынша орындалады. Razor механизмінің көмегімен ұсыныстарды іздеуге арналған адресті анықтауға болады. Razor механизмі ұсыныс файлдарын дискіден іздемейді себеі олар С# класында компиляциядан өткен болатын. Razor механизмі осы ұсыныстарға сәйкес келетін компиляцияланған кластарды іздейді.Жобада адрестің өзгеруін іздеуді көрсету үшін инфраструктура папкасын ашып оған CustomLocationViewEngine.cs атты класс файлы құрылған,ал оның құрамы келесідей:

using System.Web.Mvc;


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

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






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