【问题标题】:NancyFx bind TimeSpan is not Working jsonNancyFx 绑​​定 TimeSpan 不工作 json
【发布时间】:2015-06-09 20:21:44
【问题描述】:

早安(这里)

我正在使用 NancyFx,当我尝试使用 TimeSpan 属性绑定一个类时遇到问题,我也在使用 AngularJs

我使用的 json 是:

{ "描述": "foo",
“时间表”:{ “天”: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,我不知道为什么? :'(

有什么想法吗??

非常感谢

【问题讨论】:

    标签: c# angularjs model-binding nancy


    【解决方案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);
    }
    

    【讨论】:

    • 非常感谢朋友,我会努力上传好东西的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2018-10-13
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多