有没有办法让 ASP.NET Core 模型绑定器使用私有 setter 设置属性?

问题描述 投票:0回答:1

我使用 ASP.NET Core 最小 API,并尝试让我的视图模型(传入的客户端数据映射到的位置)为其属性使用私有设置器。

但是我发现一旦我让属性具有私有设置器,绑定就会停止工作。 有什么快速解决办法吗?我希望这是一个常见的要求并且有一个简单的解决方案,但我在网上找不到任何东西。

另外,我认为我没有做任何特别的事情:

        public void AddRoutes(IEndpointRouteBuilder app)
        {
            app
                .MapPost("api/document/getById", async ([FromBody] GetDocumentRequest request, [FromServices] ISender sender) =>
                {
                    return await sender.Send(request.Query);
                })
                .WithName("GetDocumentById")
                .Produces<DocumentViewModel>(StatusCodes.Status200OK);
        }

这里,

GetDocumentRequest
是我的视图模型。

c# asp.net-core model-binding minimal-apis
1个回答
0
投票

可以用

JsonIncludeAttribute
标记相应的属性:

public class GetDocumentRequest
{
    [JsonInclude]
    public int Type { get; private set; }
}

请参阅文档的非公共成员和属性访问器部分。

© www.soinside.com 2019 - 2024. All rights reserved.