ASP.NETMVC View頁面 序列化 c# Model 為 Json字符串


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中 包含有 &quote; 直接使用JSON.Parse()解析會報錯
        var str2 = "@str2";
        var dataUser = str;
        var reg = new RegExp("&quot;", "g");   //創建正則RegExp對象 
        var data = JSON.parse(dataUser.replace(reg, '"'))  /// 把 字符串中的 &quote; 替換成 ” 才行
        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對象 比較簡單的方法;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM