我试图像这样将功能从MVC模型传递给全日历CustomButton
var model = new CalendarViewModel()
{
(...different properties of fullcalendar...)
CustomButtons = new
{
CustomButton = new
{
Text = "Custom",
Click = "function() { window.location.href = " + Url.Action("CustomView", "Custom") + "; }"
}
},
Header = new { Center = "title", Left = "prev,next customButton", Right = "month,agendaWeek,agendaDay,today" },
};
然后序列化并将其传递给js文件
function initFrom(calendarViewModel, rootUrl) {
$('#calendar').fullCalendar(calendarViewModel);
}
但是我得到的错误customButtonProps.click.call is not a function
是由于我正在从序列化模型传递字符串而引起的。
如果我的方法不正确,如何获得期望的结果-将路由值传递给自定义按钮单击功能(在js文件中不对路由值进行硬编码)?
答案 0 :(得分:0)
我找到了解决方法。
基于this scheduler demo,我在JS中添加了自定义按钮,并从传递的模型中检索了值(模型略有变化,我在这里省略了):
$('.fc-toolbar .fc-left').append(
$('<div class="fc-button-group"><button type="button" class="ui-button ui-state-default ui-corner-left ui-corner-right ui-state-hover">' + calendarViewModel.customButton.text + '</button></div>')
.on('click', function () {
location.href = calendarViewModel.customButton.url;
})
);