我正在考虑今天晚些时候尝试使用我们正在启动的新应用程序MVC,但我很好奇这是一个全有或全无的事情,或者我是否还可以像2006年那样使用viewstate和其他拐杖参加派对同时......
答案 0 :(得分:8)
是的,您可以将您的网页表单页面和MVC视图混合在一个Web应用程序项目中。如果您已经构建了一个应用程序并且想要将应用程序从webforms迁移到mvc,那么这可能很有用。
您需要确保没有任何webforms页面进入标准ASP.NET MVC应用程序的“Views”目录中。无法通过网址直接请求“视图”目录中的页面(或视图)。
如果你是从头开始申请,那么混合两者的好处就没什么了。
答案 1 :(得分:4)
是。 MVC只是IHttpHandler接口的一个不同实现,因此经典ASP.NET和ASP.NET MVC页面可以在同一个应用程序中共存。
答案 2 :(得分:1)
正如您可能已经注意到上述答案,是的,这是非常可能的。
我实际上必须在我当前的项目中这样做。我能够获得批准将MVC添加到我们的应用程序中,但仅限于管理部分(以限制影响当前成员访问我们网站的风险)。
我遇到的最大问题是将我的网站转换为Web应用程序,但一旦完成,事情就非常简单地将MVC并排添加到我们经典的代码隐藏网页中。
我的诀窍是让我的MVC页面尽可能与我的代码隐藏页面相似,以便过渡看起来尽可能无缝。
答案 3 :(得分:1)
我目前正在开展一个新项目。虽然我想一路走下MVC路线,但有些项目要求不允许我这样做。
其中一个要求是从客户端获得分组网格。个人选择了Telerik Rad-Grid。虽然他们可能正在支持MVC,但他们还没有。
所以这意味着我必须有一个混合解决方案。直到RadGrid完全支持MVC为止 在我们处于这个过渡期的过程中,我认为可能会有更多的混合项目,直到第三方控制的支持赶上来。
此致
森
答案 4 :(得分:0)
您需要确保您的MVC路由不与Web窗体页面冲突,以便对.aspx页面的请求不会作为参数等路由到控制器操作。
有关如何避免此问题的详细信息,请参阅Phil Haack的this blog post。
答案 5 :(得分:0)
是的,MVC页面很可能与asp.net Web表单共存。我在现有的asp.net应用程序中实现了这一功能,以添加新功能。我们需要确保引用MVC DLL,为URL路由注册路由表以及在Web.config文件中配置程序集和命名空间。
答案 6 :(得分:-1)
如果你将MVC与其他方法混合使用,那么你并没有真正从中获益。 MVC的要点是允许你减少耦合并增加内聚力,如果只有一半的代码在做,那么另一半不可避免地会限制你的开发周期。
所以,我猜虽然有可能,但我认为这不值得。一直走或者根本不走。