Asp.net core asp.net核心中的HttpContext.RewritePath

Asp.net core asp.net核心中的HttpContext.RewritePath,asp.net-core,Asp.net Core,我是ASP.Net核心和将框架代码迁移到ASP.Net核心的新手,但不了解如何将下面的代码转换为ASP.Net核心 HttpContext.RewritePath(HttpContext.Request.RawUrl.Substring(0,HttpContext.Request.RawUrl.IndexOf(“?”,StringComparison.Ordinal)),string.Empty,queryString) 在ASP.NET Core中重写路径非常简单,就像在管道中很早就运行一个中

我是ASP.Net核心和将框架代码迁移到ASP.Net核心的新手,但不了解如何将下面的代码转换为ASP.Net核心


HttpContext.RewritePath(HttpContext.Request.RawUrl.Substring(0,HttpContext.Request.RawUrl.IndexOf(“?”,StringComparison.Ordinal)),string.Empty,queryString)

在ASP.NET Core中重写路径非常简单,就像在管道中很早就运行一个中间件一样,该中间件操作http请求的相关部分。您可以调整Path、PathBase、QueryString等,并影响重写代码后运行的中间件。这就是作为ASP.NET Core的一部分提供的重写中间件所做的工作。

您能清楚地描述一下您想要实现的功能吗?为什么要首先使用此代码?这是在引入路由之前在WebForms中出现的,可能根本不需要。本节解释了路由是如何取代URL重写的。WebForms无法处理路径中的参数。之后的所有框架都可以。无需将
/Products/Widgets/
重写为
/Products.aspx?id=4
,自MVC以来的所有框架都会将调用转发到
ProductsController
ProductsPage
(用于Razor页面)并将
Widgets
作为参数传递给他
Get
action.URL重写也用于从URL中删除会话id。这样的会话ID不再被使用了。你不能只是将一个WebForms应用程序重新编译成.NETCore。在过去10年中,web应用程序的体系结构发生了彻底的变化,web表单的许多怪癖和变通方法不再适用