4

I have an existing ASP.NET web site running on .NET 4.5. I need to integrate an ASP MVC 4 project (which is its own fully-functional web application) into it so that when the user navigates to a certain page, the ASP MVC application is launched within the page - almost as if it were in an iframe.

In the main solution I can set both as startup projects, but this is obviously not what I am looking for. Can someone point me in the direction of how to do this? I have never used WCF before, but is this something that it could be used for? Thanks for anything!

4

1 回答 1

0

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

为此,您需要:

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

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

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

根据我的评论,这篇博文将对您有很大帮助:Integrating ASP.NET MVC 3 into existing upgrade ASP.NET 4 Web Forms applications

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

您可能需要一些时间才能使其正常工作,但值得付出努力。

于 2013-05-10T20:14:26.917 回答