2010-07-26 77 views
2

我正在處理MVC項目,並在查看頁面中使用jQuery從控制器獲取數據。返回JSON數據以查看ASP.NET MVC中的頁面

public JsonResult CheckUpdate() 
{ 
    dt = dt.AddSeconds(-100); 

    IQueryable<Tweet> _tweet = ttr.CheckTime(dt); 

    return Json(_tweet, JsonRequestBehavior.AllowGet); 
} 

這是我的控制器的方法後者從庫類回的數據,並將它作爲JSON到我的視圖頁面,它使用jQuery來得到它。

當我運行程序和螢火蟲檢查,它顯示我的誤差是:在序列化類型「TweetTrafficReport.Models.User」

的目的檢測

循環引用我問題是

  • 它是正確的,我返回JSON數據,它是IQueryable的類型
  • 我怎麼能在我看來頁面,而不是GE使用JSON數據t等上面

感謝烏拉圭回合的幫助:)

回答

2

循環引用我敢打賭,是因爲一個錯誤的事實你有你的鳴叫對象參考回覆

IQueryable真的不是一個大的問題,像鑄造每個鳴叫一樣JsonCapableTweet像hanselman那樣 http://nerddinnerbook.s3.amazonaws.com/Part11.htm

但它確實有助於在方式lolok Twitter的做到這一點

http://search.twitter.com/search.json?callback=foo&q=twitter

這就是相當不錯的JSON他們回來,你匹配到他們的是一個好習慣

+0

你認爲循環引用問題來形成我的數據庫中有什麼衝突,因爲我嘗試和改變屬於NerdDinner你給,它仍然是循環引用問題 – icepon 2010-07-26 17:04:30

+0

你的代碼將其更改爲jsonTweet的樣子? – MarkKGreenway 2010-07-26 17:07:52

+0

在我的數據庫中有我的錯誤謝謝你的幫助 – icepon 2010-07-26 17:18:13

2

你真的不應該返回的IQueryable爲JSON,試圖返回一個視圖模型,而不是

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); 
}