【问题标题】:Launch an ASP MVC project from a normal .aspx page从普通的 .aspx 页面启动 ASP MVC 项目
【发布时间】:2013-04-30 13:30:07
【问题描述】:

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

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

【问题讨论】:

  • 我认为这可以通过适当的路由机制来路由和处理您的请求以显示特定视图来实现。毕竟 MVC 也返回某种 HTML 页面。 WCF 无论如何都不适合这种情况。

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


【解决方案1】:

您可以创建一个混合网络表单 - 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 创建一个布局(这可能非常困难或很容易,具体取决于其内容和设计) - 使用 AJAX 和 MVC 部分视图制作 Web 表单页面并集成 MVC 页面

来自我的cmets,这篇博文对你有很大帮助:Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications

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

你可能需要一些时间来让它工作,但这是值得的。

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2013-10-06
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多