MVC5没有绑定日期值

时间:2015-08-17 19:45:03

标签: knockout.js asp.net-mvc-5 bootstrap-datetimepicker

我正在使用Typescript,Knockout和bootstrap编写MVC应用程序。

我有一个字段,我将bootstrap v3 datetimepicker绑定到。

绑定看起来像这样:

$('.form-group input[type="datetime"]').datetimepicker({ locale: 'en-GB' });

出于某种原因,我有两个问题。

  1. 无论我为locale设置什么,输入字段似乎总是将日期呈现为美国格式。
  2. US Date format

    1. 无论我如何尝试将值发回,MVC模型绑定器都看不到值。
    2. 我不太担心#1,除非它导致#2,我试图直接在淘汰赛中发布日期值,这给了我一个MVC似乎不喜欢的/Date(1439838919784)/值。 / p>

      之后,我尝试通过替换字符串的日期位,将日期值转换为简单的刻度表示,创建一个JavaScript日期对象并发布:

      var koDate = this.BetDetailsViewModel().Event.Date();            
      var dateString = new Date(parseInt(koDate.replace("/Date(", "").replace(")/", ""), 10));
      

      这给了我一个这样的值:Mon Aug 17 2015 20:15:19 GMT+0100 (GMT Daylight Time) MVC似乎也没有接受。

      最后,看到引导程序datetimepicker使用了moment.js我以为我会尝试从日期创建一个时刻对象并发布。我将KO viewmodel属性弹出为moment() ctor,如下所示:

      var momentDate = moment(this.BetDetailsViewModel().Event.Date()).format();
      

      这给了我一个这样的值:MVC似乎喜欢的2015-08-17T20:23:34+01:00

      虽然技术上我刚刚设法解决了第二个问题,但似乎我必须更加努力地工作!

      有什么方法可以避免从KO观察中创造一个时刻吗?

      另外,为什么语言环境似乎不像我期望的那样工作? datetimepicker上的文档非常精简!

      修改

      为了澄清,这就是我按脚本顺序包含的内容:

      enter image description here

0 个答案:

没有答案