2012-04-17 85 views
0

Timeline.js + MVC +添加元素数组的JavaScript错误在视图+ MVC

我有我的看法如下代码

@{   
    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" }); 
    } 
} 

这里我想补充细节数据数组将用于在时间轴中显示细节,但是当我在浏览器中检查数据的值时,它显示我未定义。

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

任何解决方案?

回答

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> 

应该结束了,沿着线的东西:该日期时间字段使用/Date(Ticks)格式进行序列化

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

通知。您可以使用various techniques将它们转换为原生javascript日期。