Обновление 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.