我正在使用webapi2。我在模型中有一个属性是开始日期,其数据类型是datetime。我想以“ dd-mm-yyyy”格式传递日期。但是,如果我发送,我将收到400个错误的请求。你能帮我一下吗。注意,我正在使用Fluent验证进行模型验证。
public class Item
{
public DateTime? StartDate { get; set; }
public string Id { get; set; }
}
答案 0 :(得分:0)
我要将日期传递为“ dd-mm-yyyy”`
您有3个选择。
ISO8601
请勿将其作为“ dd-mm-yyyy”传递。而是以ISO8601格式(yyyy-MM-dd
)传递。这是将DateTime
序列化为字符串,然后在各层之间传递该字符串表示形式的正确方法。这种格式是一种标准的,使用广泛,明确的格式,据我所知,几乎所有框架都内置了将DateTime
输出为该格式并从该格式进行解析的机制。
显示格式为“ dd-mm-yyyy”的DateTime
是表示层关注的问题,应该放在此处,而不是“渗入”其他应用程序层。
使用自定义代码(例如Json Converte或ActionFilterAttribute
)来读取传入的DateTime
。
改为接受字符串参数,并在控制器的方法中处理您自己的解析。
老实说,我不建议您使用最后两个选项。而是使用ISO8601:一种传达DateTime
的标准,明确,被广泛接受的方法。
答案 1 :(得分:0)
我已经创建了一个自定义值提供程序工厂,并且正在使用默认的模型绑定。
BindingInflate()