Обновление MVC3 до MVC4
В версии ELMA 3.9 была обновлена библиотека ASP.NET MVC с версии 3 до версии 4.
Для обновления модуля до версии MVC4 необходимо сделать следующее:
1. Обновить библиотеки и конфигурации проекта в соответствии с описанием http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 (на английском языке).
В номере версии System.Web.Mvc необходимо везде указывать 4.0.0.1 вместо 4.0.0.0.
2. Собрать и проверить функционал модуля. Ниже приведены наиболее частые ошибки компиляции разметки:
- Использование переменных вида @someVariable внутри уже начатого блока кода – необходимо убирать знак @ и оставлять только название переменной.
- Иногда необходимо заменять вывод разметки с @Html.RenderSomething() на Write(Html. RenderSomething()) – в основном это требуется в шаблонных функциях или делегатах.
- В версии MVC 4 была добавлена стандартная функция-расширение Html.NameFor, тогда как у нас была аналогичная функция – пришлось удалить свою функцию, т.к. иначе не могли компилироваться представления. Но результат функции изменился со строки на MvcHtmlString и теперь при использовании этой функции может понадобиться добавлять ToString().
Например, Html.NameFor(m => m.PropertyName).ToString(). - Некоторые ключевые слова не распознаются, например, @string необходимо писать как @String или можно оборачивать такие конструкции в скобки: @(string.Join(“ ,”, list)).
Модули, собранные для версии MVC 3 могут работать, но возможны ошибки разметки, описанные выше, или ошибки использования кода, не поддерживаемого в MVC 4.