Я пробовал это только на одном решении, и фактическое преобразование сделало довольно хорошую работу.Я скачал проект конвертера Telerik, скомпилировал его, а затем преобразовал свои проекты, используя следующие командные строки:
aspx2razor C:\Development\MyProject\MyWebProject\*.ascx C:\Development\MyProject\MyWebProject -r
aspx2razor C:\Development\MyProject\MyWebProject\*.aspx C:\Development\MyProject\MyWebProject -r
aspx2razor C:\Development\MyProject\MyWebProject\*.master C:\Development\MyProject\MyWebProject -r
Мне нужно было только вернуться, чтобы добавить @include
для пространства имен здесь и там, идобавьте несколько скобок, чтобы заставить механизм представления Razor правильно распознавать мой встроенный код.Это было также довольно простое решение, так что YMMV.Но даже если он успешно преобразует 80-90% ваших просмотров, это гораздо меньше ручной работы, которую вам придется выполнять самостоятельно.Отсюда вы также можете создать файл _ViewStart.cshtml
и внести несколько незначительных изменений, чтобы воспользоваться преимуществами макета, специфичного для Razor.(Посмотрите на сообщение Скотта Гу: http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx)
Большая проблема, с которой я столкнулся при попытке согласовать изменения файла с управлением исходным кодом. Так как классический движок представления MVC использует .aspx
, .ascx
,и расширения .master
, мне пришлось вручную добавить файлы .cshtml
в мой веб-проект MVC и систему контроля версий, а затем удалить старые версии. Это было не сложно, просто много времени.
Кроме того,вам может потребоваться добавить все необходимые записи web.config
для поддержки механизма представления Razor, а также, если ваш проект был создан с использованием MVC 1 или 2. Проекты, созданные с помощью MVC 3, должны уже иметь эти записи на месте, даже если это не былоизначально создан как сайт Razor.