zoukankan      html  css  js  c++  java
  • webpages框架使用@razor语法向js代码传递Json字符串

        进入web开发时间太短,一个人尝试着做了几个初级项目,遇到了太多的困难。尽管不是学开发专业的,仅为爱好所以硬着头皮坚持了下来。

        将遇到的问题记录下来,备查。

    1. 使用vs2015中asp.net razor3网站模板作为基础逐渐扩展,遇到了服务器传递回js的Json字符串错误。
    2. 错误表现:原本字符串中的转义字符  "   ,通过 @变量名 传递到js代码中,变成了 "
    3. 在网上检索了一下,遇到这个问题的不多,应该是初级错误;
    4. 看了一篇文章,其原因如下:为了防止某些攻击,系统将敏感字符进行了加工,于是就有了  "  =>  "  的结果  ,原文链接
    5. 解决方法:将js代码中‘@变量名’用Html.Row(变量名)直接输出。
    6. 该问题得到解决。

    例如:

    服务器端代码如下:

        System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
        var jsonStr = jss.Serialize(temJson);

        此时:使用断点,监视jsonStr,结果正确,部分字符串如下:

        "[{"Id":905,"生产日期":"\/Date(1460649600000)\/","月份":4,。。。。。。}]"

    js引用jsonStr代码为:

        var json=JSON.parse('@jsonStr');

        试运行,IE到这里出现错误,将字符串中的   "   转化成了 "

    修改该行代码为:

        var json=JSON.parse('@(Html.Raw(jsonStr))');

        再运行,结果正确。

  • 相关阅读:
    Django ORM操作
    两张表是一对一的关系为什么不直接都放在一张表里面?
    TCP、UDP 详解
    如何使用Xshell连接虚拟机
    selenium中常见的无法定位元素问题
    python中生产者消费者模式
    Selenium 点击后跳转至新窗口无法定位元素问题(element not interactable)
    linux 网络管理
    Linux文件权限
    linux 用户管理命令
  • 原文地址:https://www.cnblogs.com/jqdy/p/5452673.html
Copyright © 2011-2022 走看看