zoukankan      html  css  js  c++  java
  • 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对象 比较简单的方法;

  • 相关阅读:
    JS 时间格式化函数
    jQuery 输入框 在光标位置插入内容, 并选中
    js Html结构转字符串形式显示
    .aspx 页面引用命名空间
    sql随机实现,sql GUID
    一个清华女大学生与一个普通二本男大学生的QQ聊天记录
    asp.net inc 的使用
    JS编码,解码. asp.net(C#)对应解码,编码
    SQL的小常识, 备忘之用, 慢慢补充.
    Js 时间间隔计算(间隔天数)
  • 原文地址:https://www.cnblogs.com/generalLi/p/6567600.html
Copyright © 2011-2022 走看看