.net 核心中的 HttpRequest.Query[] 是如何工作的?

How does HttpRequest.Query[] in .net core works?


下面的语句是如何工作的?

我试图在 Microsoft 文档中查看,但找不到太多信息

Link to Microsoft documentation

var queryString = this.Request.Query[SomeConstant.QueryString];

让我们假设您使用

命中任何端点

/someendpoint?foo=bar&name=Vamsi

您现在可以通过以下方式获取整个 QueryCollection:

var queries = this.Request.Query;

如果您想通过键检索特定值,可以使用:

var foo = this.Request.Query["foo"]   //value: bar
var name = this.Request.Query["name"] //value: Vamsi

所以回答你的问题:Query[SomeConstant.QueryString] 正在通过访问特定键来访问当前请求的 QueryCollection,该键存储在名为 SomeContant.QueryString

的变量中

这里的查询对象是一个IQueryCollection.

IQueryCollection 实现了两者:

IEnumerable<KeyValuePair<String,StringValues>>
IEnumerable

假设我们有以下 Url : http://localhost/home/index?code=A000

您可以将键值对视为字典,我们有一个代表查询字符串参数名称(例如:代码)的键和一个值(例如:A000)

为了从 url 中检索代码,您必须在该列表中搜索并找到此名称。为此,您调用 Query["code"]

在你的例子中,SomeConstant.QueryString 是在你的项目中某处定义的常量,在 class 中,名称为 SomeConstant,常量名称为 QueryString,其值为常量是 "code".

public Class SomeConsant{
    public const string SomeConstant = "code";
}