ASP.NET Core 7 Web API:不接受类对象作为参数

jjjwad0x  于 2023-11-20  发布在  .NET
关注(0)|答案(2)|浏览(125)

我已经创建了一个ASP.NET Core 7 Web API,并成功创建了大约30个工作正常的端点。只是陷入了一些奇怪的情况,我创建了一个具有此签名的端点:

[HttpPost]
[Route("[action]")]
public async Task<IActionResult> UsersBySearch([FromBody] UserSearchOptions prmUSO)
{
    var (Result, Response) = await UOW.Users.GetUsersBySearch(prmUSO);

    if (Result != null)
    {
       return Ok(Response);
    }
    else
    {
       return BadRequest(new ServiceErrorMsg { Message = new() { "Error fetching user list"}});
     }
}

字符串
其中UserSearchOptions类看起来像这样:

public class UserSearchOptions
{
    public int Skip;
    public int PageSize;
    public string? SortCol;
    public string? SortColDir;
    public string? searchVal;
    public int UserId;
}


现在当我运行这个时,我的Swagger API没有显示这个API,输入类对象作为输入参数,当我用Postman调用它时,API被调用,但参数值没有在其中接收。


的数据




请大家帮忙解决这个问题。

cl25kdpy

cl25kdpy1#

尝试将getter和setter添加到类中。

public class UserSearchOptions
{
    public int Skip {get; set;}
    public int PageSize {get; set;}
    public string? SortCol {get; set;}
    public string? SortColDir {get; set;}
    public string? searchVal {get; set;}
    public int UserId {get; set;}
}

字符串

0wi1tuuw

0wi1tuuw2#

您可以根据其他答案更改DTO以使用属性而不是字段,或者如果您确实想使用字段,则可以通过将API的JsonSerializerOptions.IncludeFields设置为true来启用它们,如https://stackoverflow.com/a/58139922/1064169所述。

相关问题