You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function .NET5隔离进程如何从HttpRequestData获取路径参数Id

.NET 5 Isolated 模式 Azure Function 获取路由参数Id的方案

方案1:直接参数绑定(推荐)

直接在Run方法的入参中添加和路由占位符同名的参数,Azure Functions运行时会自动完成参数绑定,无需手动解析,是最简便的实现方式。
示例代码:

[Function("Run")]
public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "get",
    Route = "todo/{id}")] HttpRequestData req,
    string id, // 与路由占位符{id}同名即可自动绑定
    FunctionContext executionContext)
{
    var logger = executionContext.GetLogger("GetTodo");
    logger.LogInformation("C# HTTP trigger function processed a request, id: {Id}", id);

    var response = req.CreateResponse(HttpStatusCode.OK);
    response.Headers.Add("Content-Type", "text/plain; charset=utf-8");

    response.WriteString($"请求的待办ID为:{id}");

    return response;
}

方案2:从执行上下文手动读取

如果不想修改方法入参结构,可以从FunctionContext的绑定上下文中手动读取路由参数值:
示例代码:

[Function("Run")]
public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "get",
    Route = "todo/{id}")] HttpRequestData req,
    FunctionContext executionContext)
{
    var logger = executionContext.GetLogger("GetTodo");
    logger.LogInformation("C# HTTP trigger function processed a request.");

    // 手动读取路由参数id
    var id = executionContext.BindingContext.BindingData["id"]?.ToString();

    var response = req.CreateResponse(HttpStatusCode.OK);
    response.Headers.Add("Content-Type", "text/plain; charset=utf-8");

    response.WriteString($"请求的待办ID为:{id}");

    return response;
}

注意事项

  • 参数名称需要和Route属性中定义的{id}占位符名称保持一致,大小写不敏感。
  • 如果id是数值类型,直接将入参定义为int/long类型即可,运行时会自动完成类型转换,若传入值不符合类型要求会直接返回404错误。

内容的提问来源于stack exchange,提问作者chiaDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:15:03