如何滚动“Viewmodel中的JSON”数组来更改KnockoutJS的日期格式?

时间:2012-01-13 03:44:52

标签: json knockout.js

我正在构建一个MVC3站点并使用Knockout / JSON作为第一个 时间,我是JSON的新手,并不像我那样擅长Javascript。 我在剃刀视图中使用MVC3模型,解析为Json

cshtml中的模型是

@model IEnumerable<MySite.Models.UserViewModel> 

然后:

var initialData = @Html.Raw(Json.Encode(Model)); 
var viewModel = { 
                fields: ko.observableArray(initialData), 

等......

一切都适用于表格中的foreach绑定 数据等..但问题是在JSON数组/模型中有 我需要更改一些日期以正确显示它们。

实际上日期显示为/ 日期(1319929111857)/

我会滚动所有数组并拦截标签“BirthDate”和 解析调用这样一个函数的日期:

function formatJSONDate(jsonDate){ 
    var newDate = dateFormat(jsonDate, "mm/dd/yyyy"); 
    return newDate; 

我该怎么做? 我试了几个小时才能使用下面这样的功能,但我不知道 如何调用JSON数组的 BirthDate:标签并更改 内容:

formatDate: function() { 
         for (var i=0; i<this.fields().length;i++) 
        {//foreach JSON array item,find BirthDate: /Date(sssf) and encode it correctly} 

更改JSON将在视图中显示正确的数据。

之后,我需要能够使用JqueryUI Datepicker编辑字段,并将所有数组重新发送到控制器并将i保存到数据库。 我做得很好还是有其他更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

似乎ViewModel中的属性是DateTimes,这会导致您看到的格式。他们需要成为DateTimes吗?

我会创建ViewModel字符串的属性并在服务器上进行格式化。在客户端上进行处理是不必要的步骤。