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

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

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

Браузер

 

Контроллер

 

Модель

 

 

 

 

 

Ввод пользователя можно проверять в трех местах: 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