我正在构建一个 .Net Core api 控制器,我希望允许用户发送 GET
请求并且可以选择是否携带 MyRequest
类作为参数,因此如果使用 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; }
}
当我使用Postman并在Body中留空时(例如用Get(null)
的方式来调用空对象MyRequest
),我会收到这样的Postman提示信息:但如果我使用"需要非空请求体。"
Get
方法并带上Body,它是起作用的。这里有一个类似的问题,但那里的参数是值类型。
this._myService.Get
方法里面有什么?你需要在_myService.Get
方法内部处理空请求,或者创建一个没有Filters
和IncludeProperties
参数的_myService.Get
方法重载。 - SᴇM