从正常的.aspx页面启动ASP MVC项目

时间:2013-05-06 18:20:17

标签: asp.net asp.net-mvc wcf asp.net-mvc-4

我有一个在.NET 4.5上运行的现有ASP.NET网站。我需要将ASP MVC 4项目(它是自己的全功能Web应用程序)集成到其中,以便当用户导航到某个页面时,ASP MVC应用程序在页面内启动 - 几乎就像它在一个页面中一样iframe

在主要解决方案中,我可以将它们都设置为启动项目,但这显然不是我想要的。有人能指出我如何做到这一点的方向?我之前从未使用过WCF,但这是否可以用于它?谢谢你!

1 个答案:

答案 0 :(得分:0)

您可以创建混合网络表单 - MVC应用程序。

要做到这一点,你需要:

  • 将MVC配置从新MVC项目的web.config复制到WebForms应用程序web.config
  • 创建标准MVC 4文件夹(至少是视图,控制器)
  • 引用所需的程序集
  • 将视图中的web.config从MVC项目复制到WebForms项目Views文件夹
  • 更改路由配置以忽略包括.aspx / .ascx在内的路由,以便它们由Web表单处理,而不是MVC(也可以用于.ashx,.asmx或其他基于Web表单的工件)

这样,您就拥有一个支持MVC和WebForms的ASP.NET应用程序,并使用相同的身份验证,会话等。

然后你可以进行这种集成: - 制作完全MVC或完全webforms的页面。如果您正在使用母版页,则需要为Web表单创建母版页,并为MVC创建一个布局(这可能非常难或非常简单,具体取决于其内容和设计) - 创建一个webforms页面并使用AJAX和MVC部分视图集成MVC页面

Aprt来自我的评论,这篇博文将对您有所帮助:Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications

顺便说一句,这不是理论上的......我有一个包含大量页面,区域和视图的Web应用程序,它使用这种技术,并且它可以完美地运行。我不得不重做母版页面的设计(布局和CSS),这样两种页面看起来都很相似。我很幸运能够使用SQL XML查询和XSLT在webforms占位符中呈现菜单,因此在MVC布局中重复使用它非常容易。您可以在主页面和MVC布局中执行类似的操作(我的意思是手动渲染HTML,并在两个页面中使用它,以便它只执行一次)

你可以花点时间让它发挥作用,但值得付出努力。