Asp.net mvc 在MVC.Net中,必须为JsonResult传递什么类型的对象
因此,我将一个自定义类传递给我的控制器,而JsonResult似乎没有正确传递 困扰我的是(fullcalendar也不会读取json)我视图中的console.log打印函数的路径(wtf?),而不是json应该返回的内容 这是我的代码:Asp.net mvc 在MVC.Net中,必须为JsonResult传递什么类型的对象,asp.net-mvc,Asp.net Mvc,因此,我将一个自定义类传递给我的控制器,而JsonResult似乎没有正确传递 困扰我的是(fullcalendar也不会读取json)我视图中的console.log打印函数的路径(wtf?),而不是json应该返回的内容 这是我的代码: public JsonResult GetCalendarEvents() { var eventList = BusinessLayer.Event.getAllEvents(); return Json(
public JsonResult GetCalendarEvents()
{
var eventList = BusinessLayer.Event.getAllEvents();
return Json(eventList.ToArray(), JsonRequestBehavior.AllowGet);
}
要使其工作,必须传递什么类型的对象
我的evenList类型为List
,如下所示:
public static String ListToString(List<Event> evs)
{
String ret = "";
foreach (var ev in evs)
{
ret += ev.ToString() + "\n";
}
return ret;
}
public static List<Event> getAllEvents()
{
List<DataLayer.Event> dbEvents = DataApi.db.Event.ToList();
List<Event> returnEvents = new List<Event>();
foreach (DataLayer.Event oneEvent in dbEvents)
{
Event newEvent = new Event
{
ID = oneEvent.IDEvent,
userID = oneEvent.UserID,
projectID = oneEvent.ProjectID,
jobtypeID = oneEvent.JobTypeID,
taskID = oneEvent.TaskID,
ticketID = oneEvent.TicketID,
loccoID = oneEvent.LoccoID,
startTime = oneEvent.StartTime,
endTime = oneEvent.EndTime,
shiftFrom = oneEvent.ShiftFrom,
shiftTo = oneEvent.ShiftTo,
description = oneEvent.Description,
billable = oneEvent.Billable
};
returnEvents.Add(newEvent);
}
return returnEvents;
}
并将结果输出到控制台:
console.log("@Url.Action("GetCalendarEvents/")");
但我得到:
VM84 Index:83 /Calendar/GetCalendarEvents/
fullcalendar.min.js:6 Uncaught TypeError: Cannot read property 'hasTime' of undefined
看起来您缺少了一些必填字段。如果查看,
标题
,开始
是必需的。尝试在类中设置这些,并从中开始构建
public static List<Event> getAllEvents()
{
List<DataLayer.Event> dbEvents = DataApi.db.Event.ToList();
List<Event> returnEvents = new List<Event>();
foreach (DataLayer.Event oneEvent in dbEvents)
{
Event newEvent = new Event
{
start = oneEvent.StartTime,
title = oneEvent.Description // you may need to add this to your Event class.
};
returnEvents.Add(newEvent);
}
return returnEvents;
}
公共静态列表getAllEvents()
{
List dbEvents=DataApi.db.Event.ToList();
List returnEvents=new List();
foreach(dbEvents中的DataLayer.Event oneEvent)
{
Event newEvent=新事件
{
start=oneEvent.StartTime,
title=oneEvent.Description//您可能需要将其添加到事件类中。
};
returnEvents.Add(newEvent);
}
返回事件;
}
此外,不要使用控制台来记录Json,而是使用或使用Chrome高级工具任何可以序列化为Json的工具都可以。返回的JSON到底有什么问题?是空的吗?你有例外吗?什么意思?什么不起作用?您遇到了什么错误?抱歉,我试图解释我的调试尝试。您是否尝试在浏览器中调用
/Calendar/GetCalendarEvents
,将url粘贴到地址栏,或使用Fiddler或Chromre REST工具@url。Action
“生成操作方法的完全限定url”根据文件,这让我兴奋不已。还有一个问题是,我正在调试@Url.Action,试图将它输出到浏览器控制台,以便它只显示Url。我还没有弄清楚\@Url.Action是在什么级别执行的,但它与这个“特定”问题稍微无关
public static List<Event> getAllEvents()
{
List<DataLayer.Event> dbEvents = DataApi.db.Event.ToList();
List<Event> returnEvents = new List<Event>();
foreach (DataLayer.Event oneEvent in dbEvents)
{
Event newEvent = new Event
{
start = oneEvent.StartTime,
title = oneEvent.Description // you may need to add this to your Event class.
};
returnEvents.Add(newEvent);
}
return returnEvents;
}