我继承了一个MVC3项目,该项目包含大量ASPX视图,我想将其转换为Razor。这个问题=> Aspx to Razor syntax converter?与我的相似,它帮助我找到了一堆用于转换视图的选项,但除了转换视图之外,我还不清楚我需要采取的步骤。
Telerik's razor-converter的第一个已知限制是“该工具仅适用于视图,不处理项目结构和母版页”。这个tool声称能够转换母版页,但它看起来并不像开发人员以外的任何人使用它。
我认为这些是我需要采取的步骤:
这些是正确的步骤吗?你能帮我解决我在第2步和第3步的问题吗?
答案 0 :(得分:3)
我只在一个解决方案上试过这个,实际转换做得相当不错。我下载了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的布局功能。 (查看Scott Gu的帖子:http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx)
我遇到的一个大问题是尝试将文件更改与源代码控制进行协调。由于经典MVC视图引擎使用.aspx
,.ascx
和.master
扩展,因此我必须手动将.cshtml
文件添加到我的MVC Web项目和源代码控制中,然后删除旧版本。这并不困难,只是耗时。
此外,如果您的项目是使用MVC 1或2创建的,则可能需要添加所有必需的web.config
条目以支持Razor视图引擎。使用MVC 3创建的项目应该已经包含这些条目到位,即使它最初不是作为Razor网站创建的。