我今天考虑尝试在我们开始的一个新应用程序中使用MVC,但我很好奇它是否是一刀切的。是否可以同时像2006年那样使用viewstate和其他支撑?
我今天考虑尝试在我们开始的一个新应用程序中使用MVC,但我很好奇它是否是一刀切的。是否可以同时像2006年那样使用viewstate和其他支撑?
是的,您可以在单个Web应用程序项目中混合使用WebForms页面和MVC视图。如果您已经构建了一个应用程序,并且想将应用程序从WebForms迁移到MVC,则这可能很有用。
但是,请确保您的任何WebForms页面都不要放在标准ASP.NET MVC应用程序中的“Views”目录中。在“Views”目录中的页面(或视图)无法通过URL直接请求。
如果您从头开始创建应用程序,则混合使用两者的好处很少。
是的。MVC只是IHttpHandler接口的不同实现,因此经典的ASP.NET和ASP.NET MVC页面可以在同一个应用程序中共存。
正如您从上面的答案中可能已经注意到的那样,这是完全可以做到的。
实际上,在我的当前项目中,我不得不这样做。我获得了批准将MVC添加到我们的应用程序中,但仅限于管理部分(以限制影响访问我们网站的现有成员的风险)。
我遇到的最大问题是将我的Web Site转换为Web Application,但一旦完成,添加MVC到我们的经典代码后端Web页面就变得非常简单明了。
对我来说,诀窍是使我的MVC页面尽可能类似于我的代码后端页面,以便过渡看起来尽可能无缝。
我目前正在开发一个新项目。虽然我想一路走MVC,但是一些项目要求不允许我这样做。
其中一个要求是从客户端拥有分组网格。我个人选择了Telerik Rad-Grid。虽然他们可能正在支持MVC,但他们还没有完全支持。
所以这意味着我必须有一个混合解决方案,暂时使用RadGrid直到它完全支持MVC。
在这个过渡期间,我认为会有更多的混合项目,直到第三方控件的支持跟上。
敬礼
Nathan
是的,MVC页面可以与asp.net web forms共存。我在我的现有asp.net应用程序中实现了这一点,以添加新功能。我们需要确保引用MVC DLL、注册URL路由表并在Web.config文件中配置程序集和命名空间。
您需要确保您的MVC路由与Web Forms页面不冲突,以便对.aspx页面的请求不会被路由到控制器操作作为参数等。
请参阅Phil Haack的此博客文章,了解如何避免这种情况的详细信息。
如果你将MVC与其他方法混合使用,那么你就无法真正从中获得好处。MVC的目的是允许您减少耦合并增加内聚性,如果只有一半的代码在做这件事,那么另一半代码必然会限制您的开发周期。
所以,我想虽然这是可能的,但我认为这不值得。要么全力以赴,要么不做。