Javascript 具有MVC模型的完整日历事件阵列
我使用的是javascript和jquery,在这方面我非常在行 我知道我可以像这样在日历中添加事件:Javascript 具有MVC模型的完整日历事件阵列,javascript,jquery,asp.net-mvc,fullcalendar,Javascript,Jquery,Asp.net Mvc,Fullcalendar,我使用的是javascript和jquery,在这方面我非常在行 我知道我可以像这样在日历中添加事件: events: [ { title: 'All Day Event', start: new Date(y, m, 1), backgroundColor: "#f56954", //red borderColor: "#f56954" //red },
events: [
{
title: 'All Day Event',
start: new Date(y, m, 1),
backgroundColor: "#f56954", //red
borderColor: "#f56954" //red
},
{
title: 'Meeting',
start: new Date(y, m, d, 10, 30),
allDay: false,
backgroundColor: "#0073b7", //Blue
borderColor: "#0073b7" //Blue
}
]
我的问题是如何使用IEnumarable模型添加带有循环的事件。在我的示例中,“Check”是我的模型的名称。if else语句用于确定何时必须键入逗号,因为最后一个事件后面不能有逗号 您可能知道,
@
符号定义了C#语法的开头。但是,使用@:
表示应将此行视为内容块
正如您所看到的,我使用了@
来开始foreach
循环,然后循环中必须使用JavaScript语法的任何东西前面都有@:
,甚至括号
lastItem变量定义IENumber表的最后一项。要在Razor视图中定义变量,必须使用@{(此处声明变量)}
。
if语句随后将检查当前项是否是最后一项-如果是,则不在末尾添加逗号
您只需复制我的示例并将属性编辑到您自己的
events: [
@{Check lastItem = Model.Last(); }
@foreach (var item in Model) {
@:{
@: title: ('@item.Name.ToString()'),
@: start: ('@item.DateScheduledFor.ToString("yyyy-MM-ddTHH\\:mm\\:ss")'),
@: description: 'NTO: @item.NTO'
@:}
if (item != lastItem) {
@:,
}
else
{
@:
}
}
]
您可以使用
array.prototype.push()
,轻松地从循环向数组添加对象:
我认为您错过了
Array.prototype.push()
,您可以在events
上使用该方法来推送新创建的JSON对象。在循环中创建一个新对象,然后将其推入事件中,您就完成了。您能举个例子吗?我不知道IEnumerable模型,但我会用一个简单的javascript循环发布一个答案
var myEvents = [
{ title: "Meeting", date: new Date('01/01/2015') },
{ title: "Lunch", date: new Date('01/05/2015') }
];
myEvents.forEach(function(baseEvent) {
events.push({ title : baseEvent.title, start: baseEvent.date, allDay: false, backgroundColor: "#f56954" });
});