最近似乎我最近似乎发布的是带有JSON的ASP.NET MVC - 你会认为我现在要学习!然而,奇怪的事情仍在发生,我无法解释!ASP.NET MVC返回JSON对象的ViewModels
我有一个返回JsonResult一个控制器方法:
public JsonResult GetAllUserTasksForStage(int StageID, string Username)
{
var uM = ManagerProvider.GetUserManager();
var tM = ManagerProvider.GetTaskManager();
var tasks = tM.GetAllUserTasks(StageID, uM.GetUser(Username).ID);
// GetAllUserTasks returns IEnumerable<TaskViewModel>
// Encode this into Json and return it
return Json(tasks, JsonRequestBehavior.AllowGet);
}
此方法成功完成,但是当涉及到接收这个在我看来,问题的出现。我已经尝试使用$ .post(...)和$ .getJSON(...) - $ .post()我从Controller方法中删除了JsonRequestBehavior。
阅读jQuery文档我已经看到,$ .post和$ .getJSON的回调函数只会在结果是有效的JSON时触发 - 这导致我相信GetAllUserTasksForStage的返回结果有问题。
的TaskViewModel类定义为:
public class TaskViewModel
{
public int ID { get; set; }
public UserViewModel Assignee { get; set; }
public DateTime Created { get; set; }
public UserViewModel Creator { get; set; }
public DateTime Due { get; set; }
public string TaskDescription { get; set; }
public string TaskTitle { get; set; }
public bool Completed { get; set; }
public StageViewModel Stage { get; set; }
public IEnumerable<TaskAuditViewModel> TaskAudits { get; set; }
}
它是完全难倒我,因为我用$。员额,并没有任何问题在同一个浏览几次$ .getJSON - 但从未返回TaskViewModel。
任何想法?
感谢,
克里斯
“出现问题”?你能更具体些吗?您是否在Firebug或Fiddler中检查过JSON? – 2010-01-18 13:33:11
$中给出的回调函数。post()和$ .getJSON不会触发,这意味着返回无效的JSON - 但我不知道它为什么是无效的JSON。 – Chris 2010-01-18 13:46:57
您需要指定正在生成的错误类型,以便任何人充分评论问题的可能性。 – Israfel 2010-01-18 13:47:16