我正在尝试通过 Json 将完整日历事件传递给我的控制器,但是我正在将 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 时,它填充得很好。
尝试将事件转换为 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; }
}