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对象 比较简单的方法;

 

转载于:https://www.cnblogs.com/generalLi/p/6567600.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值