gpt4 book ai didi

c# - 如何允许引用类型参数的请求主体为空?

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:47 25 4
gpt4 key购买 nike

我正在构建一个 .Net Core api Controller ,我想允许用户发送带有或不带有 MyRequest 类作为参数的 GET 请求,因此例如,使用 Get(null) 调用该方法就可以了。

GET api/myModels 请求方法:

[HttpGet]
public ActionResult<IEnumerable<MyModel>> Get(MyRequest myRequest)
{
if (myRequest == null)
myRequest = new myRequest();

var result = this._myService.Get(myRequest.Filters, myRequest.IncludeProperties);
return Ok(result);
}

MyRequest 类:

public class MyRequest
{
public IEnumerable<string> Filters { get; set; }
public string IncludeProperties { get; set; }
}

当我使用带有 Body 的 Postman 引用此 Get 方法时,它起作用了。问题是,当我将正文保持为空时(使用 MyRequest 空对象作为参数调用 Get 方法,如 Get(null)),我得到了这个 Postman 的消息:

"A non-empty request body is required."

有一个类似的question , 但在那里,参数是值类型。

最佳答案

这样做:

  services.AddControllersWithViews(options =>
{
options.AllowEmptyInputInBodyModelBinding = true;
});

关于c# - 如何允许引用类型参数的请求主体为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56579391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com