.NET Core 中 "Request" class/object 的替代方法是什么?
What is the alternate way for "Request" class/object in .NET core?
我正在将现有的 ASP.NET Web API 2 项目迁移到 ASP.NET Core。迁移时我找不到 this.Request
对象。谁能帮我解决这个问题?
您需要像这样覆盖您的 class 以获得 this.Request
public partial class _Default : System.Web.UI.Page
有人问过这个问题 ,但由于 ASP.NET Core 当时可能仍处于 RC 状态,我想我应该在这里回答而不是参考那里,因为有些东西是已过时或完全从正式版本中删除。
假设您的控制器 class 继承自 Controller
(或更具体地说,ControllerBase
),那么它 有一个 this.Request
属性如你所见here and here。正如 Pawel 指出的那样,您还可以从 this.HttpContext
属性.
访问它
请求的 URL 在 HttpRequest
上被分解为几个属性。您可以通过添加 using Microsoft.AspNetCore.Http.Extensions;
在更友好的 API 中访问 URL,这使您可以访问以下扩展方法:
GetDisplayUrl()
GetEncodedUrl()
就查询字符串而言,HttpRequest
提供 QueryString
和 Query
属性供您交互。
旁注:我刚刚在这台笔记本电脑上首次针对 .NET Core 上的 ASP.NET Core 创建了一个应用程序,Intellisense 需要一段时间才能为 Request
属性,所以我想知道这是否是您的问题。
我正在将现有的 ASP.NET Web API 2 项目迁移到 ASP.NET Core。迁移时我找不到 this.Request
对象。谁能帮我解决这个问题?
您需要像这样覆盖您的 class 以获得 this.Request
public partial class _Default : System.Web.UI.Page
有人问过这个问题
假设您的控制器 class 继承自 Controller
(或更具体地说,ControllerBase
),那么它 有一个 this.Request
属性如你所见here and here。正如 Pawel 指出的那样,您还可以从 this.HttpContext
属性.
请求的 URL 在 HttpRequest
上被分解为几个属性。您可以通过添加 using Microsoft.AspNetCore.Http.Extensions;
在更友好的 API 中访问 URL,这使您可以访问以下扩展方法:
GetDisplayUrl()
GetEncodedUrl()
就查询字符串而言,HttpRequest
提供 QueryString
和 Query
属性供您交互。
旁注:我刚刚在这台笔记本电脑上首次针对 .NET Core 上的 ASP.NET Core 创建了一个应用程序,Intellisense 需要一段时间才能为 Request
属性,所以我想知道这是否是您的问题。