0

如何在 Azure 函数中使用多个可选参数?我正在使用一个参数创建这样的 Azure 函数,它正在工作。

public async Task<IActionResult> GetRName(
            [HttpTrigger(AuthorizationLevel.Function, "get",  
            Route = "CommonResource/{subscriptionId?}")] HttpRequest req,
            string subscriptionId, 
            string resourcetype, 
            string location, 
            ILogger log)
        {
         ---
        }

如果我添加这样的附加参数,则会出现错误。

[FunctionName("GetResourceName")]
        public async Task<IActionResult> GetRName(
            [HttpTrigger(AuthorizationLevel.Function, "get",  Route = "CommonResource/{subscriptionId:string?}/{resourcetype?}")] HttpRequest req,
            string subscriptionId ,string resourcetype , ILogger log)
        {
            log.LogInformation("This API should return Resource name.");

            //string resourcetype = req.Query["resourcetype"];
            resourcetype = req.Query["resourcetype"];
            string location = req.Query["location"];

请检查随附的屏幕截图以供参考。

在此处输入图像描述

4

2 回答 2

2

路由“api/CommonResource/{subscriptionId:string?}/{resourcetype?}”上的约束条目“subscriptionId”-“string”无法由“DefaultInlineConstraintResolver”类型的约束解析器解析。

您使用{subscriptionId:string?}的是不受支持的,这会导致上述错误。

本文档列出了支持的约束,请参考。

在此处输入图像描述

于 2019-12-10T06:07:49.433 回答
0

您需要更改 Route 属性

Route = "CommonResource/{subscriptionId:int}/{resourcetype}")

如果你想使用多个可选参数,只有连续的参数才有效

Route = "CommonResource/{subscriptionId:int?}/{resourcetype?}")
于 2019-12-06T07:09:02.533 回答