将MVC项目的视图引擎从.ASPX转换为Razor的步骤是什么?

时间:2012-03-29 16:05:45

标签: asp.net-mvc asp.net-mvc-3 razor

我继承了一个MVC3项目,该项目包含大量ASPX视图,我想将其转换为Razor。这个问题=> Aspx to Razor syntax converter?与我的相似,它帮助我找到了一堆用于转换视图的选项,但除了转换视图之外,我还不清楚我需要采取的步骤。

Telerik's razor-converter的第一个已知限制是“该工具仅适用于视图,不处理项目结构和母版页”。这个tool声称能够转换母版页,但它看起来并不像开发人员以外的任何人使用它。

我认为这些是我需要采取的步骤:

  1. 使用实用程序转换视图
  2. 手动转换母版页(我该怎么办?)
  3. 修改项目结构(需要修改哪些内容?)
  4. 删除ASPX文件
  5. 测试应用程序(我应该注意的任何特定问题?)
  6. 这些是正确的步骤吗?你能帮我解决我在第2步和第3步的问题吗?

1 个答案:

答案 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网站创建的。