2

前几天将我的 Azure 函数迁移到 .net5,现在我正在努力处理基本的输入绑定问题。

我的查询 => /api/query?sgtins=foo1&sgtins=foo2

在 3.1 版上,一个简单的 req.Query["sgtins"] 就可以完成这项工作。但现在在 .net5 上我不知道。使用字符串、整数等很好,但只要我使用 IEnumerable,它就会在运行时崩溃。有任何想法吗?目前有关 .net5 的文档很可悲:(

这是我的演示代码。如上所述使用 url。

在此处输入图像描述

这是例外;

[2021-06-14T08:34:53.015Z] 执行“Functions.QueryProductEntities”(失败,ID=5f33b8ab-fdb2-483c-93fc-6dac3bb25ddc,持续时间=531ms)[2021-06-14T08:34:53.015Z] 系统.Private.CoreLib:执行函数时出现异常:Functions.QueryProductEntities。System.Private.CoreLib:结果:失败 [2021-06-14T08:34:53.015Z] 异常:Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException:转换函数“QueryProductEntities”的 1 个输入参数时出错:无法转换输入参数 'sgtins' 从类型 'System.Collections.Generic.IEnumerable'1[[System.String, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'细绳'。[2021-06-14T08:34:53.015Z] 在 Microsoft.Azure.Functions.Worker.Context.Features。

4

1 回答 1

3

使用Microsoft.AspNetCore.WebUtilities.QueryHelpers解析HttpRequestData.Uri获取查询参数。

 var queryDictionary = 
    Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(req.Uri.Query);

现在使用上面的字典,您可以将值集合作为

var sgtins = queryDictionary["sgtins"];

sgtinsStringValues结构的类型。检查字符串值

于 2021-06-14T11:10:28.820 回答