"经典" ASP.NET页和Microsoft MVC可以在同一Web应用程序中共存吗?

时间:2020-03-06 14:42:55  来源:igfitidea点击:

我正在考虑今天晚些时候为我们正在启动的新应用尝试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为止。
在我们处于过渡时期的时候,我认为在第三方控制的支持赶上之前,可能会有更多的混合项目。

问候

内森