早上好(在这里)
我正在使用 NancyFx,当我尝试使用 TimeSpan 属性绑定(bind)一个类时遇到问题,我也在使用 AngularJs
我使用的 json 是:
{ "description": "foo",
"scheduleTime": { "days": 0, "hours": 23, "minutes": 36, "seconds": 10, "milliseconds": 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 为空,我不知道为什么?? :'(
有什么想法吗??
非常感谢
查看 source code ,TimeSpan json 转换器仅处理 TimeSpan,而不处理可为 null 的 TimeSpan。
您可以为 Nancy 提出问题,或者提供修复更好 - 这是一个开源项目,欢迎提出意见。
目前,请考虑在您的类中使用不可为 null 的属性。
或者,创建您自己的 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);
}
我是一名优秀的程序员,十分优秀!