【发布时间】:2014-12-19 21:01:30
【问题描述】:
乡亲
我正在构建一个 ASP.Net MVC 5 Web 应用程序。它使用 JQuery FullCalendar http://fullcalendar.io/ 。
一个带有 FullCalendar 的页面连接到我的控制器中的 JsonResult 方法,该方法使用 Json 数据返回并使用各种事件填充日历。当我单击日历上的某个事件时,会调用 FullCalendar 的 eventClick 部分,就像这样。
eventClick: function (calEvent, jsEvent, view) {
$.ajax({
type: "GET",
async: false, //This makes the JQuery below wait until $.ajax() call is finished
url: '/TimeEntry/UpdateTimeEntryPartial/',
data: { id: calEvent.id },
error: function () {
alert("An error occurred.");
},
success: function (data) {
$("#TimeEntryPartial").html(data);
}
});
}
这会对我的控制器中的一个方法进行 Ajax 调用,该方法返回一个局部视图。返回的 Partial 包含事件详细信息,然后我可以对其进行修改(日期、时间等),然后执行更新以更新数据库表中的事件详细信息。
这就是问题所在。一旦我更新了事件详细信息,数据库中的数据就会正确更新。但是当我再次点击日历中的事件(实际上是任何事件)时,Ajax 调用(见上文不再发生)。我已经在我的控制器中的方法 UpdateTimeEntryPartial 上放置了一个断点,但它永远不会到达它。
因此,总而言之,我可以更新一次事件,但是当我再次尝试更新它时,Ajax 调用不会发生。
我希望这是有道理的。
我非常感谢任何帮助,因为我在试图找出问题所在时遇到了困难。
提前致谢。
更新
保存 FullCalendar 的 DIV 不在 Partial TimeEntryPartial 内。
<div class="panel-body" id="TimeEntryPartial">
@Html.Partial("_TimeEntryPartial", Model.TimeEntry)
</div>
<div class="panel-body">
<!-- FullCalendar Here -->
<div id="calendar"></div>
</div>
<script>
$('#calendar').fullCalendar({
//Full Calendar properties including call to get Json data
});
</script>
我还应该让您知道,此问题仅发生在 Internet Explorer 中,而不发生在 Google Chrome 或 Firefox 中。很奇怪。
【问题讨论】:
-
日历在元素
TimeEntryPartial内吗?您是否重新订阅事件点击? -
@Andrei 请查看我更新的问题。我不确定重新订阅事件点击是什么?对不起。感谢您的帮助。
-
您是否尝试在 eventClick 函数的 ajax 选项中添加
cache: false? api.jquery.com/jQuery.ajax/#options -
@JamieDunstan 如果我能给你寄一份圣诞礼物,我会的!将
cache: false添加到我的Ajax 声明中解决了我的问题。谢谢! -
@tgriffiths 不客气!我会将这些信息作为答案发布 - 如果您可以将其标记为已接受,那就太好了:)
标签: ajax asp.net-mvc fullcalendar