"经典" ASP.NET页和Microsoft MVC可以在同一Web应用程序中共存吗?
我正在考虑今天晚些时候为我们正在启动的新应用尝试MVC,但我很好奇它是全有还是全无,还是我仍然可以像2006年那样同时使用viewstate和其他拐杖来参加聚会……。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
解决方案
是的。 MVC只是IHttpHandler接口的不同实现,因此经典ASP.NET和ASP.NET MVC页面都可以共存于同一应用程序中。
如果我们将MVC与其他方法混合使用,则并不能真正从中受益。 MVC的目的是允许我们减少耦合并增加内聚力,如果只有一半的代码正在这样做,那么另一半将不可避免地限制开发周期。
因此,我认为尽管有可能,但我认为这并不值得。一路走还是不走。
是的,我们可以将Webforms页面和MVC视图混合在一个Web应用程序项目中。如果我们已经构建了一个应用程序,并且想要将应用程序从Web窗体迁移到MVC,这可能会很有用。
但是,我们需要确保没有一个Webforms页面进入标准ASP.NET MVC应用程序的" Views"目录中。无法直接通过url请求"视图"目录中的页面(或者视图)。
如果我们是从头开始创建应用程序,则将两者混合使用几乎没有什么好处。
我们需要确保MVC路由不会与Web窗体页面冲突,以便对.aspx页面的请求不会作为参数传递给控制器操作。
有关如何避免这种情况的详细信息,请参见Phil Haack的博客文章。
正如我们可能已经注意到以上答案一样,是的,这很可能做到。
实际上,我必须在当前项目中执行此操作。我能够获得批准,将MVC添加到我们的应用程序中,但仅限于管理部分(以限制影响当前访问我们网站的成员的风险)。
我遇到的最大问题是将网站转换为Web应用程序,但是一旦完成,就可以很直接地将MVC并排添加到经典的代码隐藏网页中。
对我来说,诀窍是使我的MVC页面看起来与我的代码隐藏页面尽可能相似,从而使过渡看起来尽可能无缝。
我目前正在从事一个新项目。虽然我想一直沿用MVC路线,但是某些项目要求不允许我这样做。
这些要求之一是从客户端建立分组网格。个人选择了Telerik Rad-Grid。尽管他们可能正在支持MVC,但目前还不存在。
所以这意味着我必须有一个混合解决方案。直到RadGrid完全支持MVC为止。
在我们处于过渡时期的时候,我认为在第三方控制的支持赶上之前,可能会有更多的混合项目。
问候
内森