我应客户的请求构建了一个包含ASP.NET Web窗体的大型站点。问题是,我发现ASP.NET Web表单有点不直观(我个人的口味)。所以我想要做的就是使用MVC,但我不能指望我的客户为完成重写而付出时间(他也没有时间)。我可以使用ASP.NET MVC与常规的ASP.NET Web窗体
所以我问的是,我可以同时使用ASP.NET MVC和Web窗体,并逐渐使用MVC越来越多?有小费吗?
我应客户的请求构建了一个包含ASP.NET Web窗体的大型站点。问题是,我发现ASP.NET Web表单有点不直观(我个人的口味)。所以我想要做的就是使用MVC,但我不能指望我的客户为完成重写而付出时间(他也没有时间)。我可以使用ASP.NET MVC与常规的ASP.NET Web窗体
所以我问的是,我可以同时使用ASP.NET MVC和Web窗体,并逐渐使用MVC越来越多?有小费吗?
更新2014:
的Visual Studio 2013使我们更接近一个ASP.NET。 没有MVC 项目类型或Web窗体项目,只有ASP.NET。如果您想要混合Web窗体和Web API,或者MVC和SignalR,请继续! 您受到鼓励和支持。新功能和功能是 与NuGet带来没有打破现有的应用程序。
所以Web Forms和MVC(已几乎被无缝地工作)的混合,现在鼓励和边界模糊。我想MS认识到需要允许项目慢慢迁移到MVC,或者根据需要迁移部分,并获得两全其美。
MVC项目:
已经使用MVC的Web窗体相当长的一段时间肯定是可能的,一个很好的选择。通过良好的体系结构设计(例如DDD(服务存储库,依赖注入等)),可以将新功能和页面轻松添加到MVC页面中,并且旧的功能可以保持原样。在一个webforms页面中组合MVC也可以正常工作,尽管JS验证可能存在一些小问题。我会极力推荐它。
从创建一个MVC应用程序(5个atm)开始,然后在启动并运行基本模板后,在文件夹内添加旧的webforms。这样您就可以正确地获得新的MVC设置,并保持向后兼容性。
使用MVC一个web表单内.aspx页:
下面的文本旨在演示如何从webforms页面内部使用MVC。 (例如,在MyPage.aspx中)您可以在webforms中使用MVC动作/视图。 ajax来填充页面或某些div的一部分。
包含MVC的Webforms工作正常,至少在HTML中添加ajax调用以填充MVC的div时。
里面一个.aspx
..html & webforms code
<div id="fillMeFromMVC">
<script type="text/javascript">
$.ajax(... call an MVC action to fill
the "fillMeFromMVC" div that this script sits inside of);
</script>
</div>
这将填补通过MVC的页面的一部分,你可以清晰地做你的MVC,而不用担心什么在网络表单完成。
的WebForms与MVC:但是这里
通过这一点,你可能很了解这两种技术之间的差异,是他们之间的一个小比较。他们都有自己的目的和用途。我个人比较喜欢MVC,因为我需要做的事情,但这可能取决于你想要达到的目标。
如果您使用例如在他们身后的SOA和Web页面都可以使用相同的业务逻辑。 当代码全部位于页面后面并与UI相关联时(无需分离关注点),Webforms可能是有害的。有了可靠的体系结构和一些可以减少的努力。
延伸阅读:
Webforms vs. MVC (Code project)
Difference betweeen ASP.NET WebForms and ASP.NET MVC (a blog)
我认为你是错的,因为MVC`RouteCollection`有这个设置叫做'RouteExistingFiles`这是'默认FALSE`。这意味着如果您访问现有的aspx页面(并且它不驻留在** Views **文件夹内(本地web.config阻止对文件的直接请求访问),它应该作为日常WebForm处理。 – 2012-05-09 08:40:18