• ASP.NET MVC 中使用Json的一点小疑问(已解决)


    大多数情况下我们返回到客户端的Json有两种方式:

    1、直接传对象给Json()去转成Json

    代码
    public ActionResult JsonTest()
    {

            List
    <Result> list = new List<Result>();
            list.Add(
    new Result { State = 2});
            list.Add(
    new Result { State = 5 });

    return Json(list,JsonRequestBehavior.AllowGet);
    }


    public ActionResult JsonTest()
            {

                List
    <Result> list = new List<Result>();
                list.Add(
    new Result { State = 2});
                list.Add(
    new Result { State = 5 });

                
    return Json(list,JsonRequestBehavior.AllowGet);
            }
    2、手写拼凑
    public JsonResult JsonTest2()
            {
                
    string s=@"[{'State':2},{'State':5}]";

                
    return Json(s, JsonRequestBehavior.AllowGet);
            }

    前端都用同样的方法:

                $(function() {              
                    $.ajax({
                        type: 
    "Get",
                        url: 
    "Home/JsonTest",
                        data: { t: 
    new Date() },
                        dataType: 
    "json",
                        success: 
    function(data) {
                            alert(data);                       
                        }
                    });
                    $.ajax({
                        type: 
    "Get",
                        url: 
    "Home/JsonTest2",
                        data: { t: 
    new Date() },
                        dataType: 
    "json",
                        success: 
    function(data) {
                            alert(data);                       
                        }
                    });
                });

    这时候得到的结果:

    JsonTest : [object Object],[object Object] //已经被转成的Json数组

    JsonTest2: [{'State'2},{'State':5}] //还是字符串

    第二种情况解决办法到很简单:

    alert(eval('(' + data + ')'));

     运行字符串就可以得到Json数组.

    打开reflector查看到JsonResult :

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    response.Write(serializer.Serialize(
    this.Data));

     事实上序列化之后都是string,不知道为什么会这样,不解!! 那位高人指点一二!

    解决办法:

    原因被重复的Serialize,所以不能用Json()去返回,改用Context就Ok了。

     public ActionResult JsonTest2()
            {
                
    string s=@"[{""State"":2},{""State"":5}]";

                
    return Content(s);
            }



    --------------------------------------------------------------------------
    Daniel Chow's Blog - 不管你在哪里,都要有一颗创业的心!
    http://www.cnblogs.com/DanielChow/
  • 相关阅读:
    这篇文章把短线操作技巧以及交易原则讲透了!
    炒股老手的妙招——卖出在周K线的顶部
    连续多阳低吸买入法需要哪些条件?
    2个实盘案例带你了解南玻量态选庄股法!
    如何通过筹码分布判断一个股票要不要做?
    股票指标公式高手是怎么通过指标变现的?
    股票回踩均线是什么意思?
    定宽不定宽盒子的居中解决办法和外边距塌陷问题
    JS 数据类型
    JS 事件总结
  • 原文地址:https://www.cnblogs.com/DanielChow/p/1726398.html
Copyright © 2020-2023  润新知