c# - .NET 控制器如何将请求正文作为 json 格式解析为对象模型?
问题描述
通常,当我创建 POST 方法时,我的请求正文如下:
{
"title": "A post request title",
"body": "A longer body... For example, Italy won the EURO 2021.",
"created": "2021-05-22T14:56:29.000Z",
"updated": "2021-05-22T14:56:28.000Z"
}
但是在控制器中,我们只有一个这样的方法签名:
[HttpPost]
public void UpdateSomething([FromBody]Article article)
文章类:
public class Article
{
public string Title {get;set;}
public string Body {get;set;}
public DateTime Created {get;set;}
public DateTime Updated {get;set;}
}
我不知道 .NET 控制器如何将 JSON 格式(尤其是 DateTime 格式)解析为 Article 对象模型。
解决方案
它在 ASP.NET 中称为模型绑定。
您可以在这篇 MSDN 文章https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-5.0中获得深入的详细信息
如果需要,您甚至可以自定义它,如此处所述https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding?view=aspnetcore-5.0
您提供的 DateTime 看起来像 ISO 8601 格式。但是 ASP.NET 模型绑定可以灵活地使用日期格式。
推荐阅读
- python - 如何使用 Selenium 和 Python 浏览网站内的页面
- c# - Lambda 表达式 c# 中的条件语句
- php - PHPWord 在 docx 模板中设置 rtf 值
- ffmpeg - 某些视频无法通过错误 MEDIA_UNKNOWN 进行 chromecast
- javascript - 黑客如何滥用 javascript 的 eval() 进行跨站攻击?
- php - PHP foreach 语句拆分名称 MySQL 数据库
- compilation - 如何为 Debian 9 编译 linphone 3.12.0?
- android - How to intertwine Async functions and sync functions in flutter
- corda - 使用 SSH 连接到 Corda Explorer UI 时出现以下错误“PortForwardingL:local port 127.0.0.1:10005 can't be bound”
- sql - 我需要关于密码生成器 python 脚本的建议