在開發中,有時我們需要在View層中拿到Model返回的數據并且是一個Json對象,那么我們就可以利用Newtonsoft.Json.JsonConvert.SerializeObject(Model)將Model層反序列化,由于js拿到反序列化的數據后一些特殊字符還需要處理,如:雙引號"反序列化后會變成",所以要將其替換成",str.replace(/"/g,"\""),然后再用js函數JSON.parse將其轉換,就得到一個Json對象
后臺C#代碼:
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; }
}
}
前臺代碼:
@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>
輸出結果:

公告

浙公網安備 33010602011771號