首页 > 解决方案 > 到达webapi端点,但所有参数为空

问题描述

我有以下终点:

    [HttpGet("/{auditReviewId}/{actioneeId?}/{entries?}")]
    public IEnumerable<AuditReviewActionDto> GetAuditReviewActions(int auditReviewId, int? actioneeId = null, int? entries = null)

我使用 HttpClient 以下列方式调用它

var client = LocalHttpClient.CreateClient("UarBase");

var response = client.GetAsync("api/AuditDashboard/GetAuditReviewActions?auditReviewId=" + logId + "&actioneeId=" + SelectedKey + "&entries=" + Limit).Result;

我将 LogId、SelectedKey 或 Limit 设置为什么并不重要,当我点击端点时,它们总是为空的。

标签: c#asp.net-web-api

解决方案


通过设置 HttpGet [HttpGet("/{auditReviewId}/{actioneeId?}/{entries?}")],您将输入指定为路由参数,但随后您将它们作为查询参数传递。

如果您想通过查询传递参数,请将它们从您的路由中删除(仅使用[HttpGet]或仅提供基本路由),然后使用[FromQuery]属性标记您的每个方法输入以指定它们来自查询参数。


推荐阅读