javascript fullcalendar datetime出错了
以下是关于在asp.net MVC5中制作日历调度器的教程: 我很难理解datetime是如何传递的,以及为什么它在数据库中显示最小值(因为保留为空,所以该值为null):具体来说,它在数据库中设置为1/1/0001 12:00:00 am 我已经研究了关于堆栈溢出的各种答案,但不知道如何或需要做哪些更改才能将datetime设置为非空值 非常感谢您的帮助 下面是我的索引视图中的javascriptjavascript fullcalendar datetime出错了,javascript,c#,asp.net,json,fullcalendar,Javascript,C#,Asp.net,Json,Fullcalendar,以下是关于在asp.net MVC5中制作日历调度器的教程: 我很难理解datetime是如何传递的,以及为什么它在数据库中显示最小值(因为保留为空,所以该值为null):具体来说,它在数据库中设置为1/1/0001 12:00:00 am 我已经研究了关于堆栈溢出的各种答案,但不知道如何或需要做哪些更改才能将datetime设置为非空值 非常感谢您的帮助 下面是我的索引视图中的javascript <script> $(document).ready(func
<script>
$(document).ready(function () {
var events = [];
var selectedEvent = null;
FetchEventAndRenderCalendar();
function FetchEventAndRenderCalendar() {
events = [];
$.ajax({
type: "GET",
url: "/home/GetEvents",
success: function (data) {
$.each(data, function (i, v) {
events.push({
eventID: v.EventID,
title: v.Subject,
description: v.Description,
start: moment(v.Start),
end: v.End != null ? moment(v.End) : null,
color: v.ThemeColor,
allDay: v.IsFullDay
});
})
GenerateCalender(events);
},
error: function (error) {
alert('failed');
}
})
}
function GenerateCalender(events) {
$('#calender').fullCalendar('destroy');
$('#calender').fullCalendar({
contentHeight: 400,
defaultDate: new Date(),
timeFormat: 'h(:mm)a',
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay,agenda'
},
eventLimit: true,
eventColor: '#378006',
events: events,
eventClick: function (calEvent, jsEvent, view) {
selectedEvent = calEvent;
$('#myModal #eventTitle').text(calEvent.title);
var $description = $('<div/>');
$description.append($('<p/>').html('<b>Start:</b>' + calEvent.start.format("DD-MMM-YYYY HH:mm a")));
if (calEvent.end != null) {
$description.append($('<p/>').html('<b>End:</b>' + calEvent.end.format("DD-MMM-YYYY HH:mm a")));
}
$description.append($('<p/>').html('<b>Description:</b>' + calEvent.description));
$('#myModal #pDetails').empty().html($description);
$('#myModal').modal();
},
selectable: true,
select: function (start, end) {
selectedEvent = {
eventID: 0,
title: '',
description: '',
start: start,
end: end,
allDay: false,
color: ''
};
openAddEditForm();
$('#calendar').fullCalendar('unselect');
},
editable: true,
eventDrop: function (event) {
var data = {
EventID: event.eventID,
Subject: event.title,
Start: event.start.format('DD/MM/YYYY HH:mm A'),
End: event.end != null ? event.end.format('DD/MM/YYYY HH:mm A') : null,
Description: event.description,
ThemeColor: event.color,
IsFullDay: event.allDay
};
SaveEvent(data);
}
})
}
$('#btnEdit').click(function () {
//Open modal dialog for edit event
openAddEditForm();
})
$('#btnDelete').click(function () {
if (selectedEvent != null && confirm('Are you sure?')) {
$.ajax({
type: "POST",
url: '/home/DeleteEvent',
data: {'eventID': selectedEvent.eventID},
success: function (data) {
if (data.status) {
//Refresh the calender
FetchEventAndRenderCalendar();
$('#myModal').modal('hide');
}
},
error: function () {
alert('Failed');
}
})
}
})
$('#dtp1,#dtp2').datetimepicker({
format: 'DD/MM/YYYY HH:mm A'
});
$('#chkIsFullDay').change(function () {
if ($(this).is(':checked')) {
$('#divEndDate').hide();
}
else {
$('#divEndDate').show();
}
});
function openAddEditForm() {
if (selectedEvent != null) {
$('#hdEventID').val(selectedEvent.eventID);
$('#txtSubject').val(selectedEvent.title);
$('#txtStart').val(selectedEvent.start.format('DD/MM/YYYY HH:mm A'));
$('#chkIsFullDay').prop("checked", selectedEvent.allDay || false);
$('#chkIsFullDay').change();
$('#txtEnd').val(selectedEvent.end != null ? selectedEvent.end.format('DD/MM/YYYY HH:mm A') : '');
$('#txtDescription').val(selectedEvent.description);
$('#ddThemeColor').val(selectedEvent.color);
}
$('#myModal').modal('hide');
$('#myModalSave').modal();
}
$('#btnSave').click(function () {
//Validation/
if ($('#txtSubject').val().trim() == "") {
alert('Subject required');
return;
}
if ($('#txtStart').val().trim() == "") {
alert('Start date required');
return;
}
if ($('#chkIsFullDay').is(':checked') == false && $('#txtEnd').val().trim() == "") {
alert('End date required');
return;
}
else {
var startDate = moment($('#txtStart').val(), "DD/MM/YYYY HH:mm A").toDate();
var endDate = moment($('#txtEnd').val(), "DD/MM/YYYY HH:mm A").toDate();
if (startDate > endDate) {
alert('Invalid end date');
return;
}
}
var data = {
EventID: $('#hdEventID').val(),
Subject: $('#txtSubject').val().trim(),
Start: $('#txtStart').val().trim(),
End: $('#chkIsFullDay').is(':checked') ? null : $('#txtEnd').val().trim(),
Description: $('#txtDescription').val(),
ThemeColor: $('#ddThemeColor').val(),
IsFullDay: $('#chkIsFullDay').is(':checked')
}
SaveEvent(data);
// call function for submit data to the server
})
function SaveEvent(data) {
$.ajax({
type: "POST",
url: '/home/SaveEvent',
data: data,
success: function (data) {
if (data.status) {
//Refresh the calender
FetchEventAndRenderCalendar();
$('#myModalSave').modal('hide');
}
},
error: function () {
alert('Failed');
}
})
}
})
</script>
}
这就是事件类的外观:
namespace FamilyCalendar2
{
using System;
using System.Collections.Generic;
public partial class Event
{
public int EventID { get; set; }
public string Subject { get; set; }
public string Description { get; set; }
public System.DateTime Start { get; set; }
public Nullable<System.DateTime> End { get; set; }
public string ThemeColor { get; set; }
public Nullable<bool> IsFullDay { get; set; }
public string User { get; set; }
}
}
namespace FamilyCalendar2
{
使用制度;
使用System.Collections.Generic;
公开部分班级活动
{
public int EventID{get;set;}
公共字符串主题{get;set;}
公共字符串说明{get;set;}
public System.DateTime Start{get;set;}
公共可为空的结尾{get;set;}
公共字符串ThemeColor{get;set;}
公共可空IsFullDay{get;set;}
公共字符串用户{get;set;}
}
}
日期格式对于c#自动绑定无效
'DD/MM/YYYY HH:mm A'
换成
'DD/MM/YYYY HH:mm:ss'
我应该提到:如果我将源代码复制并粘贴到我的项目中,日期时间问题仍然存在。这让我觉得我的nuget软件包或其他东西可能有问题?我对VS2017有些陌生,你能调试这段代码吗?这样你就能知道问题出在哪里了?在post方法的开头,您看到DateTime道具的值是多少?{1/1/0001 12:00:00 AM}这是调试中的开始时间,结束时间为空。此日期格式是什么DD/MM/yyyyy HH:MM A“我不认识它,请尝试将其更改为”DD/MM/YYYY HH:MM:ss“将所有日期格式更改为该格式,在我运行程序时没有任何更改谢谢。我还应该提到,我必须将格式设置为“MM/DD/YYYY HH:MM:ss”,以便它在我的计算机上工作。我不知道为什么把这个月放在第一位使它起作用,但它确实起了作用。
'DD/MM/YYYY HH:mm:ss'