早上好(这里)
我正在使用NancyFx,当我尝试使用TimeSpan属性绑定一个类时,我也遇到了问题,我也使用了AngularJs
我使用的json是:{ "描述":" foo",
" scheduleTime":{ "天":0, "小时":23, "分钟":36, "秒":10, "毫秒":0 } };
我的C#班级
public class Scheduler
{
public int IDHorario{ get; set; }
public string Descripcion { get; set; }
public Nullable<TimeSpan> scheduleTime{ get; set; }
}
我的南希模块
Post["/Add"] = parameters =>
{
var sch= this.Bind<Scheduler>();
HorarioDB.CreateHorario(sch);
return new Response().WithStatusCode(HttpStatusCode.OK);
};
但我收到scheduleTime null,我不知道为什么? :&#39;(
任何想法??
非常感谢
答案 0 :(得分:1)
查看source code,TimeSpan json转换器只处理TimeSpan,而不是可以为空的TimeSpan。
您可以为Nancy提出问题,甚至更好,提供修复 - 它是一个开源项目,欢迎提出争议。
目前,请考虑在课堂上使用不可为空的属性。
或者,创建自己的JavaScriptConverter并注册它。了解TimeSpan converter was born的实现细节。您可以重用现有的,只需验证是否有传入数据。类似的东西:
public override IEnumreable<Type> SupportedTypes
{
get
{
return new[]{typeof(Nullable<TimeSpan>)};
}
public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
{
if (dictionary.Count == 0)
{
return null;
}
return new TimeSpanConverter().Deserialize(dictionary, type, serializer);
}