在带有控制器的ASP.NET核心中,当在Program.cs中添加以下内容导致模型绑定错误时,我能够自定义错误响应:
builder.Services.Configure<ApiBehaviorOptions>(options =>
{
options.InvalidModelStateResponseFactory = actionContext =>
{
var errors = actionContext.ModelState
.Where(e => e.Value.Errors.Count > 0)
.Select(e => new
{
Name = e.Key,
Message = e.Value.Errors.First().ErrorMessage
}).ToArray();
return new BadRequestObjectResult(errors);
};
});
这似乎不适用于最小的API。如何使用最小的API实现相同的结果?
发布于 2022-03-30 09:18:33
最小api不支持Model Binding
,因此您不能在最小api中使用InvalidModelStateResponseFactory
。
微软官方文档如下:
不支持模型绑定,即IModelBinderProvider、IModelBinder。支持可以添加自定义绑定垫片。不支持从表单绑定。这包括绑定IFormFile。我们计划在未来增加对IFormFile的支持。
您可以参考此链接来了解有关minimal api and controller api
之间的差异的更多细节。
https://stackoverflow.com/questions/71662807
复制相似问题