asp.net - 从普通的 .aspx 页面启动 ASP MVC 项目

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

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

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

最佳答案

您可以创建一个混合网络表单 - 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 应用程序,并使用相同的身份验证、 session 等。

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

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

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

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

    关于asp.net - 从普通的 .aspx 页面启动 ASP MVC 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404745/

    相关文章:

    c# - WCF Web 服务客户端没有端点监听

    asp.net - 如何在 ItemDataBound 事件期间向 asp 转发器添加空白行?

    asp.net-mvc - 无法使用 Lucene.Net 和 Azure 应用服务访问 Azure 存储

    c# - 如何从 WCF 服务应用程序获取客户端地址?

    c# - Wcf数据服务投影及查询方法

    c# - Linq-To-SQL CreateDatabase 不创建存储过程

    c# - 如何在 ASP 中测试 AccountController?

    asp.net-mvc - 如何在mvc中使内容类型MIME类型动态化?

    c# - ASP.NET MVC 3 Razor 语法 - 转换

    c# - 使用 BasicHttpBinding 为远程客户端发布 Wcf 服务