c# - Jquery FullCalendar 不适用于控制器上的 URL
问题描述
在我的全日历事件中,我为该事件添加了(控制器/操作)“/Calendar/GetEvents/”。这没有命中 CalendarController 中的 GetEvents 方法
我在 _Layout 中包含了完整的日历要求
<link href="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.css" rel="stylesheet" type="text/css" />
<script src="~/Content/Template/assets/libs/moment/moment.min.js"></script>
<script src="~/Content/Template/assets/libs/jquery-ui/jquery-ui.min.js"></script>
<script src="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.js"></script>
这是在我的 CalendarController 方法中
public JsonResult GetEvents(double start, double end)
{
var fromDate = ConvertFromUnixTimestamp(start);
var toDate = ConvertFromUnixTimestamp(end);
//Get the events
var eventList = this.GetEvents();
var rows = eventList.ToArray();
return Json(rows, JsonRequestBehavior.AllowGet);
}
在索引视图中有日历的 id
<div id="calendar"></div>
和脚本
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
theme: true,
defaultView: 'agendaDay',
editable: false,
events: "/Calendar/GetEvents/"
});
});
</script>
}
由于上面的脚本不起作用,我也尝试过作为脚本
@section scripts{
<script type="text/javascript">
$(document).ready(function () {
$('#calendar').fullCalendar({
header:
{
left: 'prev,next today',
center: 'title'
},
buttonText: {
today: 'today'
},
//defaultView: 'agendaDay',
editable: false,
//events: "/Calendar/GetEvents/"
events: function (start, end, timezone, callback) {
$.ajax({
url: '/Calendar/GetCalendarData/',
type: "GET",
dataType: "JSON",
contentType: "application/json; charset=utf-8",
//success: function (result) {
// alert('yeap');
//},
//error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert('oops, something bad happened');
//}
success: function (result) {
var events = [];
$.each(result, function (i, data) {
events.push(
{
title: data.Title,
//description: data.Desc,
start: moment(data.Start).format('YYYY-MM-DD'),
end: moment(data.End).format('YYYY-MM-DD'),
backgroundColor: "#9501fc",
borderColor: "#fc0101"
});
});
alert('hoo');
callback(events);
},
error: function (error) {
alert('failed');
}
});
}
//eventRender: function (event, element) {
// element.qtip(
// element.qtip(
// {
// content: event.description
// });
//},
//editable: false
});
});
</script>
}
此脚本 url 的控制器方法
public ActionResult GetCalendarData()
{
// Initialization.
JsonResult result = new JsonResult();
try
{
// Loading.
List<CalendarDay> data = this.LoadData();
// Processing.
result = this.Json(data, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
// Info
Console.Write(ex);
}
// Return info.
return result;
}
当我运行它时,它会显示日历,但它没有点击控制器中的操作方法,也没有显示日历中的事件。检查浏览器的时候可以看到如下
MOCK GET: /Calendar/GetEvents/
Object { url: "/Calendar/GetEvents/", type: "GET", isLocal: false, global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: {…}, contents: {…}, responseFields: {…}, … }
解决方案
推荐阅读
- javascript - 我们如何在此处激活这两个选项以使代码正常工作?
- html - Flex 导航汉堡包在展开时推送 Flex 内容
- python - 为什么 Python 在每个命令后都会开始一个新的绘图?
- c++ - C++ - WebView2 - 不要在我的 WIN32 应用程序的屏幕上使用组件“控制”显示我的 webView2
- c# - 使用 Interop 在 MS Word 表中查找字符串时遇到困难 - range.Find.Execute()
- c# - 为什么在基于微服务的应用程序中不使用 MassTransit、RabbitMQ 代理和 .Net 执行消费方法?
- mitmproxy - Mitmproxy:上游服务器的认证错误
- tensorflow2.0 - 当我创建 train.record 和 test.record 时,Tensorflow2 对象检测错误
- python - 更改 Python 版本原因:ModuleNotFoundError: No module named 'odoo'
- django - 使用 SQLite 和 Django 动态创建表