热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将ModelState转换为JSON以进行记录

如何解决《将ModelState转换为JSON以进行记录》经验,为你挑选了1个好方法。

如何ModelState以与ASP.NET Core相同的格式转换为JSON?

我知道我可以做BadRequest(ModelState),并且它将JSON返回给客户端。如何转换ModelState为JSON?更重要的是,我该如何使用它所使用的内容

我的目标是将ModelStateas JSON记录在我们的日志“文件”中。

var blah = ModelState.ToJson()



1> spottedmahn..:

如何将ModelState转换为JSON?

SerializableError类提供此功能。

更重要的是,我该如何使用它所使用的内容?

using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;

//get key(s) and error message(s) from the ModelState
var serializableModelState = new SerializableError(ModelState);

//convert to a string
var modelStateJson = JsonConvert.SerializeObject(serializableModelState);

//log it
logger.LogInformation("Bad Model State", modelStateJson);

样品输出

{
    "Name": ["The Name field is required."]
}

通过浏览ASP.NET Core MVC源代码,我能够弄清楚这一点。有趣的部分源代码,从SerializableError类:

foreach (var keyModelStatePair in modelState)
{
    var key = keyModelStatePair.Key;
    var errors = keyModelStatePair.Value.Errors;
    if (errors != null && errors.Count > 0)
    {
        var errorMessages = errors.Select(error =>
        {
            return string.IsNullOrEmpty(error.ErrorMessage) ?
                Resources.SerializableError_DefaultError : error.ErrorMessage;
        }).ToArray();

        Add(key, errorMessages);
    }
}


推荐阅读
author-avatar
cuishy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有