0

Timeline.js + MVC + JavaScript

我的视图中有以下代码

@{           
    var objs = objstudent.Timelines.Where(x => x.StudentID == Sessions.objStudent.StudentID).AsQueryable();
}
<script type="text/javascript">
@{
    @:var data = [];
    foreach(Student.Models.Timeline student in objs)
    {
         @:data.push({start : new Date "@student.MeetingDate", content : "@student.Description" });
    }
}

在这里,我试图在数据数组中添加详细信息,这些详细信息将用于在时间轴中显示详细信息,但是当我在浏览器中检查数据的值时,它显示我未定义。

我试过使用,但问题是一样的。

任何解决方案?

4

1 回答 1

1

永远不要像这样手动构建 javascript 文字。始终使用正确的序列化程序。例如:

@{           
    var objs = objstudent.Timelines.Where(x => x.StudentID == Sessions.objStudent.StudentID).AsQueryable();
}
<script type="text/javascript">
    var data = @Html.Raw(
        Json.Encode(
            objs.Select(x => new 
            { 
                start = x.MeetingDate, 
                content = x.Description 
            })
        )
    );
</script>

最终应该是这样的:

<script type="text/javascript">
    var data = [
        { "start": "\/Date(1334655137358)\/", "content": "foo" },
        { "start": "\/Date(1334655137358)\/", "content": "bar" },
        ...
    ];
</script>

请注意,日期时间字段是使用/Date(Ticks)格式序列化的。您可以使用各种技术将它们转换为本机 javascript 日期。

于 2012-04-17T09:29:56.633 回答