![](/img/trans.png)
[英]Can I add ASP.NET Core MVC to existing ASP.NET Web Forms Application
[英]Can I use ASP.NET MVC together with regular ASP.NET Web forms
我应客户要求,用ASP.NET Web表单构建了一个庞大的站点。 问题是我发现ASP.NET Web表单有些不直观(仅出于我的个人喜好)。 所以我想做的是使用MVC,但是我真的不能期望客户为完全重写付出时间(他也没有时间)。
所以我要问的是,我可以同时使用ASP.NET MVC和Web表单并逐渐使用MVC吗? 有小费吗?
2014年更新:
Visual Studio 2013使我们更接近One ASP.NET。 不再有MVC项目类型或Web窗体项目,只有ASP.NET。 如果要混合使用Web Forms和Web API或MVC和SignalR,请继续! 您受到鼓励和支持。 NuGet引入了新功能,而不会破坏现有应用程序。
因此,现在鼓励将Web窗体和MVC(几乎可以无缝地工作)混合使用,并且模糊了边界。 我猜想MS意识到有必要让项目缓慢地迁移到MVC,或者仅根据需要迁移部分,并获得两全其美。
MVC项目:
将MVC与Web表单一起使用已经有一段时间了,这当然是可能的,也是一个绝佳的选择。 具有良好体系结构设计(例如DDD(服务存储库,依赖注入等))的新功能和页面可以轻松添加到MVC页面中,而旧内容可以保持原样。 在Webforms页面中组合MVC也可以正常工作,尽管JS验证可能存在一些小问题。 我会极力推荐它。
首先创建一个MVC应用程序(5 atm),然后启动基本模板并运行之后,将其添加到文件夹中相当容易。 这样,您可以正确获得新的MVC设置,并且保留了向后兼容性。
在webforms .aspx页面内使用MVC:
下面的文本旨在演示如何从Webforms页面内部使用MVC。 (例如在MyPage.aspx内部)您可以在Web窗体内使用MVC动作/视图,例如ajax来填充页面或某些div的一部分。
包含MVC的Web窗体可以正常工作,至少在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,而不必担心在Web表单中所做的事情。
WebForms与MVC:
至此,您可能已经很了解这两种技术之间的差异,但是这里对它们进行了一些比较。 它们都有其目的和用途。 我个人更喜欢MVC做我需要做的事情,但是它可能取决于您要实现的目标。
如果在其后使用例如SOA,则Web表单和MVC页面都可以利用相同的业务逻辑。 当代码都在页面的后面并且与UI绑定在一起时(没有关注点分离),Webforms可能是有害的。 凭借可靠的架构和可减少的工作量。
进一步阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.