Pull to refresh

Выпущена новая версия ASP.NET MVC 3 RC2

Reading time 4 min
Views 801
image

Прошел всего месяц с выхода ASP.NET MVC 3 RC, но команда разработчиков готова представить новую версию ASP.NET MVC 3 RC2. Этот выпуск можно назвать внеочередным, поскольку он предназначен для решения проблемы совместимости с недавно выпущенным пакетом Visual Studio 2010 Service Pack 1 Beta.

Однако, кроме совместимости с пакетом исправлений для Visual Studio 2010 в MVC 3 RC2 представлен ряд изменений, о которых необходимо знать разработчикам. Ниже представлено описание этих нововведений.

Загрузить пакет ASP.NET MVC 3 RC2 можно по этой ссылке.

Обновленные версии jQuery, jQuery Validation и jQuery UI в шаблонах проектов


В ASP.NET MVC 3 RC обновились шаблоны проектов, которые теперь содержат последние версии JavaScript-библиотек jQuery 1.4.4, jQuery Validation 1.7 и jQuery UI 1.8.6.

Новый атрибут AdditionalMetadataAttribute


В MVC 3 RC2 добавлен новый атрибут AdditionalMetadataAttribute, который позволяет добавлять дополнительные пользовательские метаданные для моделей.

image

В дальнейшем, эти дополнительные метаданные будут доступны в коллекции ModelMetadata.AdditionalValues данных представления.

Улучшения в механизме скаффолдинга представлений


Теперь при генерации представлений через пункт меню “Add View” используются методы Html.EditorFor вместо прежних явных Html.TextBoxFor и других. Это позволит автоматически создавать представления использующие механизм скаффолдинга и пользовательские представления типов данных.

Кроме того, автоматически сгенерированные представления теперь содержат ссылки на JavaScript-библиотеки необходимые для клиентской валидации.

Автоматическая генерация представлений теперь поддерживает определение ключевых полей (атрибут KeyAttribute) модели, которые не требуется выводить в представлении для редактирования.

Добавлен вспомогательный метод Html.Raw


По умолчанию весь вывод значений модели в представлениях ASP.NET MVC 3 экранируется. Для упрощения вывода значений полей модели, которые могут содержать HTML-разметку введен новый вспомогательный метод Html.Raw.

Например, если мы захотим передать следующее значение в представление:

image

то результатом будет экранированная строка:

image

Для того, чтобы избежать экранирования можно воспользоваться новым вспомогательным методом:

image

Мы получим требуемый результат:

image

Разработчики должны понимать ответственность вывода на странице неэкранированных значений пользовательского ввода. В целях безопасности, всегда следует экранировать значения, которые добавляет на сайт пользователь.

Переименование старых названий


В ASP.NET MVC 3 RC2 ряд названий классов, свойств и атрибутов был переименован по запросу пользователей. Новые имена призваны более правильно отражать суть элементов.

Свойства Controller.ViewModel и View (у представлений) переименованы в ViewBag

Должно быть это самое важное переименование, которое затрагивает практически все созданные ранее проекты на базе ASP.NET MVC 3. Ранее, введенные в MVC 3 динамические свойства, которые содержали информацию для представления в контроллере и самом представлении, именовались по-разному: ViewModel и View. Теперь их имена унифицировали под одним именем: ViewBag.

Атрибут ControllerSessionStateAttribute переименован в SessionStateAttribute

Введенный ранее атрибут ControllerSessionStateAttribute, предназначенный для управления состоянием сессий, теперь получил новое короткое имя SessionStateAttribute.

Свойство Fields атрибута RemoteAttribute переименовано в AdditionalFields

Свойство Fields атрибута RemoteAttribute, с помощью которого можно указать дополнительные свойства необходимые для валидации, было переименовано в более логичное AdditionalFields.

Атрибут SkipRequestValidationAttribute переименован в AllowHtmlAttribute

Атрибут SkipRequestValidationAttribute, с помощью которого можно отключить механизм валидации запросов для определенных параметров, был переименован AllowHtmlAttribute. Новое название отражает предназначение атрибута.

Изменено поведение Html.ValidationMessage при отображении ошибок валидации


Ранее метод Html.ValidationMessage отображал первое доступное сообщение об ошибках валидации. Иногда таким сообщением могло быть сообщение соответствующее произошедшему исключению, что не подходит для вывода на форме описания ошибки.

В ASP.NET MVC 3 RC2 метод Html.ValidationMessage выводит первое “полезное” сообщение об ошибке, игнорируя сообщения связанные с исключениями. Если никаких полезных сообщений, кроме сообщения связанного с исключением не доступно, то будет использоваться сообщения от исключения.

Исправления


В ASP.NET MVC3 было представлено несколько исправлений в поведении в разных частях фреймворка.

Декларация @model

Декларация @model больше не оставляет в разметке страницы пустой строки

Вспомогательный метод LabelFor

Исправлена ошибка, когда вспомогательный метод LabelFor генерировал для атрибута for значение name элемента, вместо значения id, которое требуется по стандарту.

Метод RenderAction

В предыдущих версиях ASP.NET MVC передача явных параметров в метод RenderAction игнорировалась и вместо них использовались текущие параметры формы во время биндинга модели в действии. В ASP.NET MVC 3 явные параметры, переданные с методом RenderAction, имеют приоритет над параметрами формы.

В механизм движков представлений добавлено свойство FileExtensions


Новое свойство FileExtensions предназначено для указания расширений, которые могут обрабатывать движки представлений. Это нововведение сделано для того, чтобы можно было определить кокой движок использовать при явном указании исполнения файлов представлений:

image

Ранее данный вызов приводил к выполнению вызова через Web Forms (первым зарегистрированным движком представлений), что приводило к исключению. Теперь, с помощью нового свойства MVC 3 может определить какой из движков использовать для указанного файла.

Заключение


ASP.NET MVC 3 – это “полировочный” выпуск, который не содержит значительных изменений и нововведений. В этой версии представлены одни из последних исправлений и мелких изменений перед выпуском финальной версии ASP.NET MVC 3. Однако, даже незначительные изменения в RC2 необходимо знать каждому разработчику ASP.NET MVC.
Tags:
Hubs:
+5
Comments 3
Comments Comments 3

Articles