![](/img/trans.png)
[英]Getting data from javascript function on to ASP.NET MVC Controller's Action Method
[英]ASP.Net MVC calling a controller action from FullCalendar's javascript function not loading the view
我正在开发一个ASP.Net MVC应用程序。 在我的一种观点中,我正在使用FullCalendar控件。 我的全日历控件有2个问题-我的第一个问题是-关于事件单击功能,我正在从Javasript函数调用某个其他控制器的操作。 我的剧本是-
<script>
$(document).ready(function () {
var sourceFullView = { url: '/Calendar/GetDiaryEvents/' };
var sourceSummaryView = { url: '/Calendar/GetDiaryEvents/' };
var CalLoading = true;
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month'
},
defaultView: 'month',
editable: true,
allDaySlot: false,
selectable: true,
slotMinutes: 15,
events: '/Calendar/GetDiaryEvents/',
eventClick: function (calEvent, jsEvent, view) {
if (!confirm('You selected Election ID: ' + calEvent.title
+ "\nElection Date: " + calEvent.start.toDateString()
+ "\n\nDo you want to Vote for this Election?")) {
return;
}
var electionID = calEvent.id;
$.ajax({
url: '@Url.Action("Tally", "Voting")',
type: 'GET',
dataType: 'json',
cache: false,
data: { id: calEvent.id }
});
},
eventResize: function (event, dayDelta, minuteDelta, revertFunc) {
if (confirm("Confirm change appointment length?")) {
UpdateEvent(event.id, event.start, event.end);
}
else {
revertFunc();
}
},
viewRender: function (view, element) {
if (!CalLoading) {
if (view.name == 'month') {
$('#calendar').fullCalendar('removeEventSource', sourceFullView);
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', sourceSummaryView);
}
}
}
});
CalLoading = false;
});
</script>
这是在调用VotingController的Tally方法-
[HttpGet]
public ActionResult Tally(int id)
{
return View(id);
}
当我通过Tally视图调试时,它看起来也不错,但是未加载从Tally操作调用的新视图,浏览器仍显示我的日历控件。
我的第二个问题是我只想显示每月日历。 当我单击日历上的下一个或上一个按钮时,我的GetDiaryEvents函数称为三次。
尝试在Tally方法中使用JsonResult。 您还可以将视图呈现为字符串,并将其包含在json返回中。
[HttpGet]
public JsonResult Tally(int id)
{ //fill your model
return Json( new { viewdata=model } );
}
在ajax调用return中,您只需要读取json return对象
success: function (return) {
$("#element").append(return.viewdata);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.