我可以将 ASP.NET Core MVC 添加到现有的 ASP.NET Web Forms 应用程序吗
Can I add ASP.NET Core MVC to existing ASP.NET Web Forms Application
我有我们遗留的 ASP.NET Web 表单应用程序。我需要创建新页面,并且我想为这些新页面使用 APS.NET Core MVC 项目。这可能吗?怎么做到的?
补充一下,我不需要保留两个项目的状态 b/w 页。
我试图创建一个单独的 MVC 核心项目(在同一解决方案下),但无法弄清楚如何在它们之间进行路由。
编辑:我知道这可以通过使用 MVC .NET Framework 实现。我的问题特定于 MVC Core.
不,你不能。虽然请求管道使用的对象在 Asp.Net 和 Asp.Net 核心之间看起来非常相似,但实际上它们是完全不同的对象,来自完全不同的命名空间。这两个是 完全 不同的管道,不以任何方式交互。所以在一天结束时,它要么是一个管道来监听传入的 Web 请求,要么是另一个管道。您不能同时尝试处理 Web 应用程序的 Web 请求。
相比之下,在 Asp.Net 使用 Full 框架时,Web Forms 和 MVC 可以并存,没有问题。这是因为两者都使用位于 System.Web
命名空间中的相同请求管道。因此,虽然他们响应请求的方式可能有点不同,但他们都使用相同的 HttpContext
对象。 Asp.Net 核心并非如此。它使用位于 Microsoft.AspNetCore.Http
命名空间中的完全不同的 HttpContext
对象。
您可能还会发现我对这个问题的回答很有帮助:
我有我们遗留的 ASP.NET Web 表单应用程序。我需要创建新页面,并且我想为这些新页面使用 APS.NET Core MVC 项目。这可能吗?怎么做到的?
补充一下,我不需要保留两个项目的状态 b/w 页。
我试图创建一个单独的 MVC 核心项目(在同一解决方案下),但无法弄清楚如何在它们之间进行路由。
编辑:我知道这可以通过使用 MVC .NET Framework 实现。我的问题特定于 MVC Core.
不,你不能。虽然请求管道使用的对象在 Asp.Net 和 Asp.Net 核心之间看起来非常相似,但实际上它们是完全不同的对象,来自完全不同的命名空间。这两个是 完全 不同的管道,不以任何方式交互。所以在一天结束时,它要么是一个管道来监听传入的 Web 请求,要么是另一个管道。您不能同时尝试处理 Web 应用程序的 Web 请求。
相比之下,在 Asp.Net 使用 Full 框架时,Web Forms 和 MVC 可以并存,没有问题。这是因为两者都使用位于 System.Web
命名空间中的相同请求管道。因此,虽然他们响应请求的方式可能有点不同,但他们都使用相同的 HttpContext
对象。 Asp.Net 核心并非如此。它使用位于 Microsoft.AspNetCore.Http
命名空间中的完全不同的 HttpContext
对象。
您可能还会发现我对这个问题的回答很有帮助: