【发布时间】:2019-12-04 04:43:04
【问题描述】:
我的 api 中有一个包含 id 和 DateTime 属性的类。
public class MyTestClass
{
public int id { get; set; }
public DateTime dateTime { get; set; }
}
我想知道是否有办法只接受具有特定日期格式的 JSON 字符串。 我的问题是模型绑定器将解析“21-01-1991”和“01-21-1991”。
示例 API 控制器
public void Post(MyTestClass myTest)
{
DateTime x = myTest.dateTime;
}
如果用户以除 iso 8601 格式以外的任何格式发送 dateTime 属性,我希望 api 返回错误请求。
【问题讨论】:
-
我认为您可能需要显示“模型绑定器”的相关代码(但不是整个程序,足以显示您正在使用的方法)。另外从您的问题中很难判断,但我认为您期望 JSON 字符串应该代表 ISO 8601 中的日期,但是您看到的值是“21-01-1991”和“01-21-1991”解析器无论如何都会尝试解析。
-
我目前没有模型活页夹,我试图写一个,但我认为必须有一种更简单的方法或配置(如序列化设置),允许指定日期格式可以解析。我为 DateTime 参数构建了一个模型活页夹,但我无法让它适用于包含日期时间属性的类,并且我不想为每个类创建一个特定的活页夹。我正在寻找一些可以处理这个问题的全局设置。
标签: c# api datetime model-binding