- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从数据库中获取事件,但无法让它工作。这些事件没有显示在我的日历和网络控制台中,我得到:
无法加载资源:服务器响应状态为 500(内部服务器错误)
抛出异常:
参数字典包含“ForecastCalendar.Controllers”中方法“System.Web.Mvc.JsonResult GetEvents(Double, Double)”的不可空类型“System.Double”的参数“start”的空条目.HomeController'。可选参数必须是引用类型、可为 null 的类型,或者声明为可选参数。参数名称:参数
以下是我的 Controller 中用于获取事件的方法:
public JsonResult GetEvents(double start, double end)
{
var events = new List<Event>();
var dtstart = ConvertFromUnixTimestamp(start);
var dtend = ConvertFromUnixTimestamp(end);
DateTime currStart;
DateTime currEnd;
foreach (Event ev in db.Events)
{
currStart = Convert.ToDateTime(ev.StartDate);
currEnd = Convert.ToDateTime(ev.EndDate);
events.Add(new Event()
{
ID = ev.ID,
Title = ev.Title,
StartDate = currStart,
EndDate = currEnd,
AllDay = true,
EventType = ev.EventType,
Hours = ev.Hours
});
}
var rows = events.ToArray();
return Json(rows, JsonRequestBehavior.AllowGet);
}
private static DateTime ConvertFromUnixTimestamp(double timestamp)
{
var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddSeconds(timestamp);
}
以下是我的事件模型:
using System;
using System.ComponentModel.DataAnnotations;
namespace ForecastCalendar.Models
{
public enum EventType
{
BAU,
Project,
AnnualLeave
}
public class Event
{
public int ID { get; set; }
[Required]
[DataType(DataType.Date, ErrorMessage = "Please enter a valid date.")]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
[Required]
[DataType(DataType.Date, ErrorMessage = "Please enter a valid date.")]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "End Date")]
public DateTime EndDate { get; set; }
[Required]
[StringLength(50, ErrorMessage = "Title cannot be longer than 50 characters.")]
[RegularExpression(@"^[a-zA-Z- ]+$", ErrorMessage = "Invalid characters used. A-Z or a-z, '-' and ' ' allowed.")]
[Display(Name = "Title")]
public string Title { get; set; }
[Required]
[EnumDataType(typeof(EventType), ErrorMessage = "Submitted value is not valid.")]
[Display(Name = "Type")]
public EventType? EventType { get; set; }
[Required]
public double Hours { get; set; }
[Required]
public Boolean AllDay { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
public virtual Person Person { get; set; }
}
}
这是呈现日历的 JavaScript。
@{
ViewBag.Title = "Home Page";
}
@Styles.Render("~/Content/fullcalendar")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/fullcalendar")
<br />
<div class="container">
<div id="calendar"></div>
</div>
<br />
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
header: {
left: 'title',
center: '',
right: 'prev,next today' },
defaultView: 'month',
weekends: false,
editable: false,
events: "/Home/GetEvents/"
});
});
</script>
非常感谢任何帮助。
编辑:
我已更改 GetEvents() 方法以符合完整日历中的事件类型。
public JsonResult GetEvents(double start, double end)
{
var fromDate = ConvertFromUnixTimestamp(start);
var toDate = ConvertFromUnixTimestamp(end);
var rslt = db.Events;
List<Event> result = new List<Event>();
foreach (var item in rslt)
{
Event ev = new Event();
ev.ID = item.ID;
ev.Title = item.Title;
ev.Hours = item.Hours;
ev.StartDate = item.StartDate;
ev.EndDate = item.EndDate;
ev.EventType = item.EventType;
ev.AllDay = ev.AllDay;
}
var resultList = result;
var eventList = from e in resultList
select new
{
id = e.ID,
title = e.Title,
start = e.StartDate,
end = e.EndDate,
allDay = e.AllDay
};
var rows = eventList.ToArray();
return Json(rows, JsonRequestBehavior.AllowGet);
}
最佳答案
检查您在 GetMethods 处接收服务器端的参数,该参数具有等待两个 Double 参数的签名,不为空。
此外,您还直接从模型事件对象发送 JSON 对象。然后,在客户端,这个 JSON 对象直接作为 fullcalendar 中的源注入(inject)。但 fullcalendar 需要文档中指定的属性,因此 start
和 title
是强制属性。
来自fullcalendar doc Event object
'start'
The date/time an event begins. Required.
A Moment-ish input, like an ISO8601 string. Throughout the API this will become a real Moment object.
但是您的 JSON 对象没有 start
属性,而是 StartDate
。
现在您可以:
无论如何,请确保在客户端您的对象具有 start
属性。
关于javascript - 完整日历 GetEvents() 方法调用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794132/
我正在使用 Windows Media Foundation API 用 C++ 编写应用程序。 我创建一个 IMFMediaSource,创建一个 PresentationDescriptor,选择
我在 eventActions.js 中导出了 getEvents 定义。我不明白为什么我会收到此错误。我导入了该函数并且文件路径是正确的。 组件 import { getEvents } from
我正在为我的自定义 ListView 制作一个适配器类。但是,当尝试从我的 Events 类中检索时,它显示“无法解析方法 'getEvent()'” 我该如何解决此问题?它围绕着我试图从中检索的 3
我正在尝试从数据库中获取事件,但无法让它工作。这些事件没有显示在我的日历和网络控制台中,我得到: 无法加载资源:服务器响应状态为 500(内部服务器错误) 抛出异常: 参数字典包含“ForecastC
我试图找出 adb shell 中 getevent 命令的输出格式。 例如,输出如下所示: adb shell getevent -t | grep 事件 1 -t 标志提供时间戳,grep 用于将
我正在查看这里的信息:Hackage 我希望程序中发生不同的事情,具体取决于按下的箭头键。使用 NCurses 模块,我可以使用 getEvent 函数注册事件。但我无法让 if 语句对存储的事件起作
我有一个 Android 电视盒,我想通过 ADB 命令控制它。特别是,我想在它上面发送“点击”事件。 到目前为止,我一直在通过“adb shell input tap x,y”来做到这一点,它工作得
我在使用作为 prism 框架一部分的事件聚合器订阅事件时遇到问题。 如果我使用诸如之类的东西 eventAggregator.GetEvent().Subscribe(MyMethod) 然后一切正
本文整理了Java中net.ymate.platform.core.YMP.getEvents()方法的一些代码示例,展示了YMP.getEvents()的具体用法。这些代码示例主要来源于Github
我在使用 geo.getEvents 方法对 last.fm API 运行测试查询时遇到问题。奇怪的是,它已经工作了一段时间,然后突然停止了。我想知道该方法是否已被禁用,还是我做错了什么? 这是由 a
在尝试构建事件聚合器以具有我的 object 的属性时转自MainViewModel至SectionViewModel我已经尝试关注多篇文章( 1 , 2 , 3 和 4 )关于它是如何工作的,但我似
Calendar.getEvents 仅适用于 PDT 时区,无法检索我的 GMT+02.00(欧洲/华沙,CEST)时区的事件。 我是 JS 和 GAS 编程的新手,但它看起来像一些问题,也许我的问
这有什么区别: RemoteWebDriver driver = new FirefoxDriver(); Object result = driver.executeScript("somefunc
我正在使用 Android Oreo 和 Mac OS Mojave。 我试图在应用程序中获取输入文本,然后我遇到了“cdfinger_input”,它看起来与我在手机上输入的文本有关。我不知道我是否
我正在尝试使用 JKeyCharacterMap.getEvents来自 Delphi 的函数从 Char 中获取 KeyCode。 所以我正在使用这段代码。 uses FMX.Platform.
我有非常简单的代码如下: @Override public void onClick(View v) { Log.i("MyApp", "Started"); try { Proc
我已经下载了一段代码,展示了如何使用 Python 2.7.3 解释器在 Windows 7 上使用 Windows Speech API (SAPI 5.1),并在我的系统上安装了 PyWin32
对于我的项目,我需要做以下事情, 从 adb getevent 命令获取设备触摸事件。 同时我需要找到一些东西来收集应用程序 Activity 调用的信息。 我的目标是根据每次触摸信息找出特定应用中的
我正在使用 Outlook api v2.0 rest api 对日历和事件执行 crud 操作,并且已经开始遇到速率限制问题。 例如,这个正在击中 calendarview endpoint : G
我正在使用以下 javascript 在 Selenium 中运行 getEval: document.getElementById("j_id0:j_id3:mainBlock:j_id40").c
我是一名优秀的程序员,十分优秀!