Asp.net 节点时间类型不是模型绑定

Asp.net 节点时间类型不是模型绑定,asp.net,nodatime,Asp.net,Nodatime,出于某种原因,我似乎无法获取请求数据以绑定到方法的NodaTime参数。使用为NodeTime配置的JsonSerializerSettings,序列化NodeTime类型并反序列化它们并没有问题。我尝试在Global.asax.cs中使用以下内容 JsonConvert.DefaultSettings = () => new JsonSerializerSettings().ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); GlobalC

出于某种原因,我似乎无法获取请求数据以绑定到方法的NodaTime参数。使用为NodeTime配置的JsonSerializerSettings,序列化NodeTime类型并反序列化它们并没有问题。我尝试在Global.asax.cs中使用以下内容

JsonConvert.DefaultSettings = () => new JsonSerializerSettings().ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);
// or this
// GlobalConfiguration.Configuration.Formatters.OfType<System.Net.Http.Formatting.JsonMediaTypeFormatter>().First().SerializerSettings.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);

我做错了什么?

问题是NodeTime中缺少TypeConverter实现。随着转换器的出现,这一问题得到了解决,现在大部分转换器已经就位。不幸的是,我不认为它会在NodaTime 3.0之前发布,但是关于将它们移动到您自己的存储库中并在运行时绑定它们的说明包含在PR中,这一功能似乎尚未实现
config.BindParameter(typeof(Offset), new OffsetModelBinder())