我最近加入了一个管理经典 ASP Web 应用程序的组。它一直很好地满足我们团队的需求。然而,在我加入之前,我决定迁移到 ASP .Net。由于我们主要是 ASP 开发人员,因此我们在 ASP .Net 中编写代码就像在 Classic ASP 中一样(大部分情况下)。是否可以将 MVC 引入此应用程序/项目?
谢谢!
我最近加入了一个管理经典 ASP Web 应用程序的组。它一直很好地满足我们团队的需求。然而,在我加入之前,我决定迁移到 ASP .Net。由于我们主要是 ASP 开发人员,因此我们在 ASP .Net 中编写代码就像在 Classic ASP 中一样(大部分情况下)。是否可以将 MVC 引入此应用程序/项目?
谢谢!
简短的回答是肯定的,这是可能的。
Scott Hanselman 之前写过关于这个话题的文章。
根据您团队中的技能,您可能会发现很难跟上进度 - 可以在 Classic ASP 中编写干净的 MVC 样式代码,但大多数人不这样做。
是的,可以在传统的 WebForms 项目中使用 MVC。几年前,我将一个大型 WebForms 项目迁移到 MVC 2,这是我的发现(我已经更新它们以反映 MVC 3)
您需要将以下引用添加到您的 Web 项目中:
System.Web.Abstractions、System.Web.Extensions、System.Web.Helpers、System.Web.Mvc、System.Web.Routing
您可以通过更改 ProjectTypeGuids 来启用 VS 扩展:
为 MVC 内容添加以下标准文件夹:
补充笔记:
这当然在技术上是可行的。然而,这听起来像是一种文化冲击,因为 MVC 的工作方式与 Classic ASP 或 ASP.NET WebForms 有很大不同。我认为这样做是值得的——或者如果这看起来更自然的话,就坚持使用 ASP.NET WebForms。但是,如果您还没有完全致力于 WebForms,那么 MVC 似乎也很容易迁移到 IMO。
是的。我从事的项目最初是纯 ASP.NET,后来添加了一些 ASP.NET MVC 页面。最终,我们更喜欢 MVC,以至于我们最终将所有 WebForms 页面迁移到使用 MVC。但自始至终,这两个系统都很好地协同工作。
这是我能记得遇到的唯一真正的问题:WebForms 的工作原理是将整个页面封装在一个大<form>
标签中。由于 HTML 不允许您有嵌套<form>
标签,因此您通常不能在 WebForms 页面内使用 MVC 表单。将 WebForms 页面与 MVC 内容分开,避免在可能出现在 WebForms 页面上的 MVC 内容中使用 HTML 表单,或者为在 WebForms DOM 区域之外创建的表单使用弹出对话框。