首页 > 解决方案 > Asp.Net-Core 2.1:使用自定义 IInputFormater 的 ModelState 错误

问题描述

我要解决的问题是我需要支持有效载荷格式,但底层模型已经发生了相当大的变化。

为了实现这一点,我阅读了 custom ModelBinderInputFormater和一些不同的主题,我保留的是,因为Content-Typewill be application/json, theJsonInputFormatter会处理它,不知道如何转换它,所以会将 null 模型传递给 API方法。

然后我决定实现一个InputFormatter只处理该模型类型Content-Type的自定义,并进行自定义反序列化。

我遇到的问题是,如果自定义反序列化中有错误,我必须调用InputFormatterResult.FailureAsync(),这不允许我将信息传递回调用者告诉他出了什么问题。如果我使用 default JsonInputformatter,在控制器中我可以将模型状态错误(ModelState.Values 的 Errors 属性)显示给调用者,但我找不到实现此目的的方法。

我的问题是:如何显示我在使用自定义时遇到的错误IInputFormatter

注意:如果我只是没有使用正确的工具进行自定义反序列化,任何指向正确方向的指针都将不胜感激。

标签: asp.net-coreasp.net-core-webapimodelstate

解决方案


推荐阅读