在開發中,有時咱們須要在View層中拿到Model返回的數據而且是一個Json對象,那麼咱們就能夠利用Newtonsoft.Json.JsonConvert.SerializeObject(Model)將Model層反序列化,因爲js拿到反序列化的數據後一些特殊字符還須要處理,如:雙引號"反序列化後會變成",因此要將其替換成",str.replace(/"/g,"\""),而後再用js函數JSON.parse將其轉換,就獲得一個Json對象javascript
後臺C#代碼:html
namespace MvcApplication1.Controllers { public class HomeController : Controller { public ActionResult Index() { View_News View_News = new View_News(); List<News> NewsList = new List<News>(); NewsList.Add(new News() { Url = "www.baidu.com", Image = "/Resource/Skin02", Title = "Tom" }); NewsList.Add(new News() { Url = "www.taobao.com", Image = "/Resource/Skin03", Title = "Jim" }); NewsList.Add(new News() { Url = "www.jd.com", Image = "/Resource/Skin04", Title = "Jess" }); View_News.NewsList = NewsList; return View(View_News); } } public class View_News { public List<News> NewsList { get; set; } } public class News { public string Url { get; set; } public string Image { get; set; } public string Title { get; set; } } }
前臺代碼:java
@model MvcApplication1.Controllers.View_News
@{
Layout = null;
string str = Newtonsoft.Json.JsonConvert.SerializeObject(Model.NewsList);
}
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script type="text/javascript"> var picData = {}; var theString = '@(str)'; theString = theString.replace(/"/g,"\""); var temp = JSON.parse(theString); picData.news = temp; console.log(picData); </script> </head>
輸出結果:jquery