Reputation: 197
I'm working on MVC project and i using jQuery in view page to get data from controller.
public JsonResult CheckUpdate()
{
dt = dt.AddSeconds(-100);
IQueryable<Tweet> _tweet = ttr.CheckTime(dt);
return Json(_tweet, JsonRequestBehavior.AllowGet);
}
This is a method in my controller which gets data back from the repository class and returns it as JSON to my view page, which uses jQuery to get it.
When i run program and inspect in Firebug, it shows me an error which is:
A circular reference was detected while serializing an object of type 'TweetTrafficReport.Models.User'
My question is
Thanks for ur help :)
Upvotes: 2
Views: 2973
Reputation: 8764
The circular reference i bet is because of the fact you have your Tweet object reference inReplyTo
IQueryable Really isnt as big an issue as casting each Tweet as a JsonCapableTweet like hanselman does http://nerddinnerbook.s3.amazonaws.com/Part11.htm
however it does help to lolok at the way Twitter does this
http://search.twitter.com/search.json?callback=foo&q=twitter
thats pretty nice json they return, matching yours to theirs is a good habit to have
Upvotes: 2
Reputation: 1783
You shouldn't really return IQueryable as Json, try returning a ViewModel instead
public JsonResult CheckUpdate()
{
dt= dt.AddSeconds(-100);
IQueryable<Tweet> _tweet = ttr.CheckTime(dt);
var tweetVm = _tweet.Select(t => new TweetViewMode(){ Message = t.Message });
return Json(tweetVm, JsonRequestBehavior.AllowGet);
}
Upvotes: 2