【问题标题】:Convert MVC 2 ASPX into MVC 4 Razor view engine将 MVC 2 ASPX 转换为 MVC 4 Razor 视图引擎
【发布时间】:2013-05-04 13:52:17
【问题描述】:

我目前正在使用 Visual Studio 2010 开发 MVC 2,并将引擎视为 ASPX 类型的项目。

所以我决定使用带有 MVC 4 的 Visual Studio 2012 并将引擎视为 Razor

那么我可以完成上述任务吗?如果可以怎么办?

我想听听您对类似情况的体验。

注意:我的项目很大。

【问题讨论】:

  • 我们将 stackoverflow 从 MVC/aspx 转换为 MVC/cshtml - “添加一些引用,编写新的默认布局(以替换母版页),添加 .cshtml 并没有太大区别文件代替 .aspx”。在 IIRC 的大多数地方,我只是将 .aspx 重命名为 .cshtml,然后修复了所有问题(我在 .cshtml 文件中对 <%%> 进行了全局搜索。它正常工作。我认为我们通过简单地创建一个新的 razor 项目并查看有什么不同来复制配置文件的 razor-esque 部分。
  • @MarcGravell 你能解释一下“写一个新的默认布局(替换母版页)”吗?
  • 通常你会有一个_ViewStart.cshtml,它将Layout分配给你旧母版页的cshtml版本;例如,我们的_ViewStart.cshtml 包含Layout = "~/Views/Master.cshtml";,其中~/Views/Master.cshtml 是转换后的标准页面模板
  • @MarcGravell 我的项目非常大。它有大量的视图。因此替换代码语法将花费大量时间。那么您是否建议使用任何自动化工具来替换 Razor 的 ASPX 语法?
  • 信不信由你,stackoverflow.com 代码库非常大,有很多视图。我不推荐任何特定的自动化工具 - 至少对我们来说,转换并没有足够的痛苦来保证它。

标签: visual-studio-2010 asp.net-mvc-4 razor asp.net-mvc-2 visual-studio-2012


【解决方案1】:

在 Visual Studio 2012 中创建一个新的 MVC4 项目,并将旧解决方案中的源文件一次添加到新解决方案中。使用新的解决方案从 MVC3 迁移到 MVC4 更容易,我不得不想象从 2 -> 4 尝试就地升级会更加复杂。

应该手动完成从 ASPX 到 Razor 的转换。尽管那里有转换器(如this one 或类似this SO question 中接受的答案的代码),但我个人不相信我的应用程序是纯自动化的。

另外,我可能会一次转换一个。换句话说,首先从 ASPX -> Razor 或 MVC2 -> MVC4 进行转换,并确保一切都适用于您的转换。然后转换另一个,这样如果你遇到任何问题,你就不必试图弄清楚是版本升级还是语法升级导致了你的问题。

【讨论】:

  • 您能否详细解释一下“从 ASPX 到 Razor 的转换必须手动完成”。 ?
  • 我的意思是您必须将每个文件从 .an aspx 扩展名转换为 .cshtml 扩展名,然后手动将文件中的标记从 ASPX 语法更改为 Razor 语法。
  • @Sampath 目前你有一大堆 aspx 文件; aspx 和 cshtml 具有不同的语法(对于不仅仅是 html 标记的位)。所以:有人(又名“你”)需要检查并更改每个视图中的代码
  • 我不确定我是否提倡“创建一个新的 MVC4 项目”方法,但是......我们使用一个新的 MVC4 项目只是为了复制 web.config/references/etc - 但我们有更新我们现有的项目没有问题
  • 我的回答基于微软推荐的 MVC3 -> MVC4 (asp.net/whitepapers/mvc4-release-notes#_Toc303253806) 中的“最简单”方法。从该页面引用:“最简单的升级方法是创建一个新的 ASP.NET MVC 4 项目,并将现有 MVC 3 项目中的所有视图、控制器、代码和内容文件复制到新项目中,然后更新新项目中的程序集引用以匹配您正在使用的任何非 MVC 模板包含的程序集。"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多