ASP.NET MVC , Controller 傳遞給View 的 Model, 將此Model在JS中 序列化為 JSon字符串, 再使用JSON.parse() 解析為JS object, 遇到問題:
1、Unexpected token ]
2、Unexpected token &
@model MOD.GiftModel[] @using System.Web.Script.Serialization @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="~/Scripts/jquery-3.1.1.js"></script> <script src="~/Scripts/knockout-3.4.2.debug.js"></script> <script> @Model.ToString(); </script> </head> <body> @{ String str = Newtonsoft.Json.JsonConvert.SerializeObject(Model); /// ASP.NET 兩種序列化方法 String str2 = new JavaScriptSerializer().Serialize(Model); <text>@str</text> <text>@str2 </text> } <script> var str = "@str"; /// 此時的 str中 包含有 "e; 直接使用JSON.Parse()解析會報錯 var str2 = "@str2"; var dataUser = str; var reg = new RegExp(""", "g"); //創建正則RegExp對象 var data = JSON.parse(dataUser.replace(reg, '"')) /// 把 字符串中的 "e; 替換成 ” 才行 alert(data); alert(typeof(data)); </script> </body> </html>
這種方法 使用 太過麻煩, ASP.NET MVC中 JSON() 可以直接傳View 解析好的字符串;
而把 Controller 傳給Veiw的 對象 轉化為 JS對象, 我想實驗下 ,因為想使用 knockout 直接把 Controller傳過來的數據綁定到ViewModel中, 這樣不用再使用AJAX請求數據了,
不知道 哪位大神 有沒有比較方便的方法? 使用AJAX去請返回json字符串 這我知道, 我想知道的是 在View頁面中 把 Controller 傳給Veiw的 對象 轉化為 JS對象 比較簡單的方法;