我试图通过Json将fullcalendar事件传递给我的控制器,但是我将null传递给我的控制器? 我究竟做错了什么? 这是我的观看代码:
<script type='text/javascript'>
$(document).ready(function () {
$(function () {
$("#save").click(function () {
var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
alert(eventsFromCalendar);
$.ajax(
{
url: '@Url.Action("Save")',
type: 'POST',
traditional: true,
data: eventsFromCalendar,
dataType: "json",
success: function (response) {
alert(response);
},
error: function (xhr) {
debugger;
alert(xhr);
}
});
});
});
});
</script>
我的控制员:
[HttpPost]
public JsonResult Save(object[] data)
{
// edit the item and get it back
return Json("success");
}
当我进入Jscript并查看eventsFromCalendar时,它填充得很好。
答案 0 :(得分:3)
尝试将您的活动转换为JSON文字:
data:{ eventsJson: JSON.stringify(eventsFromCalendar) }
(见JSON.stringify Function (JavaScript))
然后使用像Json.NET这样的工具来解析控制器操作中发布的JSON字符串:
[HttpPost]
public ActionResult Save(string eventsJson)
{
var events = JsonConvert.DeserializeObject<IEnumerable<Event>>(eventsJson);
return View();
}
public class Event
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}