• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

大多数情况下我们返回到客户端的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);
        }


 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.netdatatable导出为txt发布时间:2022-07-10
下一篇:
软件开发-C#及ASP.NET命名规范发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap