“经典”的ASP.NET页面和Microsoft MVC是否可以在同一个Web应用程序中共存?

13

我今天考虑尝试在我们开始的一个新应用程序中使用MVC,但我很好奇它是否是一刀切的。是否可以同时像2006年那样使用viewstate和其他支撑?

7个回答

9

是的,您可以在单个Web应用程序项目中混合使用WebForms页面和MVC视图。如果您已经构建了一个应用程序,并且想将应用程序从WebForms迁移到MVC,则这可能很有用。

但是,请确保您的任何WebForms页面都不要放在标准ASP.NET MVC应用程序中的“Views”目录中。在“Views”目录中的页面(或视图)无法通过URL直接请求。

如果您从头开始创建应用程序,则混合使用两者的好处很少。


5

是的。MVC只是IHttpHandler接口的不同实现,因此经典的ASP.NET和ASP.NET MVC页面可以在同一个应用程序中共存。


1

正如您从上面的答案中可能已经注意到的那样,这是完全可以做到的。

实际上,在我的当前项目中,我不得不这样做。我获得了批准将MVC添加到我们的应用程序中,但仅限于管理部分(以限制影响访问我们网站的现有成员的风险)。

我遇到的最大问题是将我的Web Site转换为Web Application,但一旦完成,添加MVC到我们的经典代码后端Web页面就变得非常简单明了。

对我来说,诀窍是使我的MVC页面尽可能类似于我的代码后端页面,以便过渡看起来尽可能无缝。


1

我目前正在开发一个新项目。虽然我想一路走MVC,但是一些项目要求不允许我这样做。

其中一个要求是从客户端拥有分组网格。我个人选择了Telerik Rad-Grid。虽然他们可能正在支持MVC,但他们还没有完全支持。

所以这意味着我必须有一个混合解决方案,暂时使用RadGrid直到它完全支持MVC。
在这个过渡期间,我认为会有更多的混合项目,直到第三方控件的支持跟上。

敬礼

Nathan


0

是的,MVC页面可以与asp.net web forms共存。我在我的现有asp.net应用程序中实现了这一点,以添加新功能。我们需要确保引用MVC DLL、注册URL路由表并在Web.config文件中配置程序集和命名空间。


0

您需要确保您的MVC路由与Web Forms页面不冲突,以便对.aspx页面的请求不会被路由到控制器操作作为参数等。

请参阅Phil Haack的此博客文章,了解如何避免这种情况的详细信息。


-1

如果你将MVC与其他方法混合使用,那么你就无法真正从中获得好处。MVC的目的是允许您减少耦合并增加内聚性,如果只有一半的代码在做这件事,那么另一半代码必然会限制您的开发周期。

所以,我想虽然这是可能的,但我认为这不值得。要么全力以赴,要么不做。


当然,这一切都取决于任务使用最好的工具吧?项目的某些部分可能更适合MVC,而其他部分则更适合WebForms... - Rob
如果你能够干净地将MVC部分与非MVC部分分离开来,那么你可以尝试一下。但是,如果它们都涉及相同的数据结构或呈现相同用户界面的部分,那么我个人建议不要这样做。 - Adam Bellaire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接