我如何检查 ASP.Net Core web API 中的 http 请求是否没有查询字符串

How can I check to see if an http request has no query strings in ASP.Net Core web API

我正在使用带有可选查询字符串参数的 REST 动词开发 ASP.Net 核心网络 API。

例如,API 调用如下所示;

http://localhost:5010/servicetypecode?stc=123

http://localhost:5010/servicetypecode?mailclasscode=fc

我正在使用这样的代码来设置查询字符串

    public IActionResult Get([FromQuery] string mailclasscode, [FromQuery] string stc) { ... }

因此,在我的方法主体中,我像这样单独评估每个字符串...

    if (!string.IsNullOrEmpty(mailclasscode)) { ... }


    if (!string.IsNullOrEmpty(stc)) { ... }

但是,我想让我的用户直接 GET 到 API,不提供任何查询字符串参数和 return 所有记录的列表,未过滤。

所以这样的电话;

http://localhost:5010/servicetypecode

但我宁愿不必在我的方法主体中执行此操作,尤其是当我有很多查询字符串参数时;

if (string.IsNullOrEmpty(mailclasscode) && string.IsNullOrEmpty(stc)) { ... }

有没有一种方法可以在不评估每个可能的查询字符串参数的情况下简单地确定是否没有提供查询字符串参数?

此外,如果我要传递大量不同的查询字符串参数,是否有比测试每个可能的参数更好的方法来评估查询字符串参数?

在此先感谢您提供的任何帮助。

您可以查看传入的请求。

if (this.HttpContext.Request.QueryString.HasValue)

另请注意,如果您有很多查询字符串参数,则可以在方法签名中使用单个 class 而不是多个参数。