民间
我正在构建一个ASP.Net MVC 5 Web应用程序。它使用JQuery FullCalendar http://fullcalendar.io/。
其上包含FullCalendar的页面连接到我的Controller中的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中。很奇怪。
答案 0 :(得分:2)
将您的ajax调用更改为包含cache: false
,如下所示。这通常可以解决Internet Explorer ajax调用的问题! See the documentation here.
$.ajax({
type: "GET",
async: false, //This makes the JQuery below wait until $.ajax() call is finished
cache: false,
url: '/TimeEntry/UpdateTimeEntryPartial/',
data: { id: calEvent.id },
error: function () {
alert("An error occurred.");
},
success: function (data) {
$("#TimeEntryPartial").html(data);
}
});
答案 1 :(得分:0)
这个脚本在你的部分内吗? 尝试将此脚本移动到部分位置,以便在调用ajax后进行刷新。