为了账号安全,请及时绑定邮箱和手机立即绑定

如何将对象传递给 web api?

如何将对象传递给 web api?

C#
慕神8447489 2021-10-24 19:12:58
我在下面有一个 GET API 方法的代码。我无法发送对象参数并让 API 方法使用它。调用了 API 方法,但参数始终为 null。问:如何更改我的代码以启用对象输入的接收?一般来说,我想我不应该用 GET 请求发送对象?但我想这可能吗?我试过使用 [FromBody] 和不使用。我在想对象不应该是 [FromUri] 吗?为了调试,我使用 Swagger;示例对象生成得很好,但是当我发送它时,它以空值到达。通过 RestSharp 使用我的客户端时的行为相同。[SwaggerResponseExample(HttpStatusCode.OK, typeof(GetProductBasesRequestExamplesForSwagger))][SwaggerResponse(HttpStatusCode.BadRequest, Type = typeof(string))]public IHttpActionResult Get([FromBody]GetProductBasesRequest getProductBasesRequest){    // transaction id to trace this calculation across processes.    var transactionId = Guid.NewGuid();    using (LogContext.PushProperty("Method", MethodBase.GetCurrentMethod().Name))    using (LogContext.PushProperty("TransactionId", transactionId))    {        try        {            if(getProductBasesRequest==null)                throw new ArgumentNullException(nameof(getProductBasesRequest),"Input can't be null");            Log.Logger.Debug("ProductBase Get : {@GetProductBasesRequest}", getProductBasesRequest);            var content = new GetProductBasesResponse            {                ProductBases = _productBaseRepository.Get()            };            return Ok(content);        }        catch (Exception e)        {            Log.Logger.Error(e, "ProductBases.Get");            return BadRequest(transactionId.ToString());        }    }}
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

Get Req do not have body ... 试试这样

public IHttpActionResult Get([ModelBinder(typeof(WebApiDataSourceRequestModelBinder))] GetProductBasesRequest getProductBasesRequest)

或者

public IHttpActionResult Get([FromUri] GetProductBasesRequest getProductBasesRequest)


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信