Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_ASP.NET MVC_1 / 6 Модель проиложения.ppt
Скачиваний:
35
Добавлен:
14.04.2015
Размер:
671.74 Кб
Скачать

Проверка ввода

Пользователь вводит данные в веб-форму, затем они попадают в контроллер, контроллер пересылает их в модель.

Браузер

 

Контроллер

 

Модель

 

 

 

 

 

Ввод пользователя можно проверять в трех местах: 1)в браузере перед отсылкой формы, 2)в контроллере перед передачей в модель,

3)в модели перед тем как изменить состояние модели.

Только модель владеет информацией, необходимой для полной проверки данных.

11

интерфейс IValidatableObject

При помощи интерфейса IValidatableObject MVC фреймворк собирает сведения об ошибках в коллекцию ModelState.

Объект ModelState потом будет доступен в контроллере и в представлении.

12

контроллере

Ви в представлении

контроллере:

В

представлени<form method="post" action="/Home/Index"> и: @Html.ValidationSummary()

Сообщение:<br/>

<textarea id="message" name="message" ></textarea> <br/>

Подпись: <input type="text" id="author" name="author" value="@Model.Author"/>

<input type="submit" value="Submit"/>

<br/> 13 </form>

Bundling & Minification

public class BundleConfig

{

public static void RegisterBundles(BundleCollection bundles)

{

bundles.Add(new StyleBundle("~/css").Include("~/Content/site.css"));

bundles.Add(new ScriptBundle("~/js").Include("~/Scripts/site.js"));

}

}

+

 

 

 

@Styles.Render("~/css") @Scripts.Render("~/js") =

<script src="/Scripts/site.js"></script> <link href="/Content/site.css" rel="stylesheet"/>

Метод RegisterBundles() вызывается на старте приложения.

Встроке "~/css" – имя упаковки. Имя должно иметь вид виртуального пути в приложении.

Вweb.config должна быть указана версия целевого фреймвормка – 4.5

<compilation debug="false" targetFramework="4.5" />

14

Программный код в шаблонах представления

Начиная с ASP в 1996 г., код шаблонов страниц представлял собой смесь из HTML-разметки и кода на языке программирования – VB или C#.

15

Движок Razor

http://habrahabr.ru/post/98241/ - перевод статьи с блога Скотта Гаттри

Границы разметки и кода

Основная особенность Razor в том, что для разделения языков предлагаются не две скобки, а одна.

Где начинается код?

Когда парсер встречает знак @, он проверяет, может ли то, что следует за ним, рассматриваться как код.

Где начинается разметка?

Начало определяется по наличию тэга <>. В движке есть специальный тэг <text>… </text>, единственная задача которого обозначить разметку. В отличие от обычных тэгов тэг <text> не будет показан на странице.

17

Сложные выражения

Круглые скобки @( ) позволяют выводить значения выражений.

18

Многострочные

выражения

В блок @{ } можно вставить несколько строчек кода

19

Блоки @if и @foreach

Переменная может быть видна в несколько серверных блоках кода.

20