如何滚动“来自 Viewmodel 的 JSON”数组来更改 KnockoutJS 的日期格式?
我正在构建一个 MVC3 网站并首先使用 Knockout / JSON 时间,我是 JSON 新手,并且不太擅长 Javascript。 我在 razor 视图中使用 MVC3 模型,解析为 Json
cshtml 中的模型是
@model IEnumerable<MySite.Models.UserViewModel>
Then:
var initialData = @Html.Raw(Json.Encode(Model));
var viewModel = {
fields: ko.observableArray(initialData),
等等......
一切都与显示表中的 foreach 绑定配合良好 数据等..但问题是在 JSON 数组/模型中有 我需要更改一些日期才能正确显示它们。
实际上日期显示为 /Date(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 保存到数据库。 我做得很好还是有其他更好的方法可以做到这一点?
i'm building an MVC3 site and using Knockout / JSON for the first
time, i'm new to JSON and not so good at Javascript as i would.
I'm using an MVC3 model in a razor view, parsed to Json
The model in the cshtml is
@model IEnumerable<MySite.Models.UserViewModel>
Then:
var initialData = @Html.Raw(Json.Encode(Model));
var viewModel = {
fields: ko.observableArray(initialData),
etc.....
All works well with foreach bindings in the of a table showing the
data etc.. but the problem is that in the JSON array/model there are
some Date that i need to change to show them correctly.
Actually the dates are displayed like /Date(1319929111857)/
I would scroll all the array and intercept the label "BirthDate" and
parse the date calling a function like this:
function formatJSONDate(jsonDate){
var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
return newDate;
How can i do this?
i tried for hours to use a function like that below but i do not know
how to call the BirthDate: label of the JSON array and change the
content:
formatDate: function() {
for (var i=0; i<this.fields().length;i++)
{//foreach JSON array item,find BirthDate: /Date(sssf) and encode it correctly}
Changing the JSON will show a correct data in the view.
After that i need to be able to edit the fields with JqueryUI Datepicker and resend all the array to the controller and save i to the DB.
I'm doing it well or there are other better ways to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ViewModel 中的属性似乎是 DateTimes,这导致了您所看到的格式。它们需要是日期时间吗?
我将创建 ViewModel 字符串的属性并在服务器上进行格式化。在客户端进行处理是不必要的步骤。
It seems like the properties in your ViewModel are DateTimes which is causing the formatting that you are seeing. Do they need to be DateTimes?
I would make the properties of the ViewModel strings and do the formatting on the server. Doing the processing on the client is an unnecessary step.