惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
G
Google Developers Blog
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
V2EX - 技术
V2EX - 技术
F
Fortinet All Blogs
博客园_首页
S
Secure Thoughts
GbyAI
GbyAI
S
Security Affairs
N
News | PayPal Newsroom
Forbes - Security
Forbes - Security
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Archives - TechRepublic
Security Archives - TechRepublic
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
A
About on SuperTechFans
P
Proofpoint News Feed
H
Help Net Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
L
LINUX DO - 最新话题
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
博客园 - 叶小钗
A
Arctic Wolf
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
人人都是产品经理
人人都是产品经理
T
Threat Research - Cisco Blogs
N
News and Events Feed by Topic
Security Latest
Security Latest
The Hacker News
The Hacker News
T
Tor Project blog
O
OpenAI News
博客园 - 三生石上(FineUI控件)
PCI Perspectives
PCI Perspectives
量子位
大猫的无限游戏
大猫的无限游戏
Stack Overflow Blog
Stack Overflow Blog

博客园 - -Enchant

Linux上搭建Asp.net MVC3环境(CentOS + Nginx + Mono) 《单例模式》你需要注意的问题 系统框架整理 Extjs prompt 显示密码框 Python网页抓取、模拟登录 单点登录(SSO)的一点思考 Jquery以JSON方式调用WebService WCF初探 关于抓取百度搜索内容 iPhone开发环境搭建(备忘) SMTP/POP3命令简介(转) C/S模式下 简单的定时任务功能 Asp.net MVC2学习笔记索引 Oracle 调优 Oracle常见错误 @OutputCache指令参数 关于ACL权限控制【ASP.NET MVC2】 c#递归生成XML 引用类型的对象复制(浅复制和深复制)
ASP.NET MVC2 Ajax返回JSON
-Enchant · 2010-03-05 · via 博客园 - -Enchant

在 MVC 返回ActionResult中,给我们提供了JSONResult对象,我们可以直接用他来返回JSON对象给前台JS脚本处理

当我们定义好Model后,把我们的Model 传给Json这个方法,它会自动根据我们Model 的属性,遍历属性后生成JSON对象,返回给浏览器,我们不用做任何处理。。

代码类似:

 public ActionResult JSON()
        {
            Models.Person p = new DataValidation.Models.Person();

            p.FirstName = "test";

            return Json(p, JsonRequestBehavior.AllowGet);
        }

前台代码:
 $().ready(function() {
        $("#btnJSON").click(function() {
        $.getJSON("/Home/JSON", function(data) {
                alert(data.FirstName);
            })
        })
    })
当我们前台 调用 这个Action 的时候,会自动给我们生成好json对象,我们前台js直接使用Model的属性就可以了。。。


当我们没有Model 的时候,却要返回JSON对象供前台JS处理怎么办呢?其实也很简单,我们只需要提供 有 键/值对 的对象给Json方法就可以了,
它会自动根据键值对生成json对象,我们可以用 Hashtable/Hashmap...,此时返回给前台的就只有一个json对象,里面包含不同属性,我们也可以根据需要返回一组json对象给js使用,
当然我们只需再添加一个list来存放这些 键值对 对象就可以了,我们把 list 传递给 Json方法,它会自动生成一个json对象数组给前台
后台代码类似:
 public ActionResult GetJSON()
        {
            ArrayList list = new ArrayList();

            Hashtable ht1 = new Hashtable();
            ht1.Add("name", "myName");

            Hashtable h2 = new Hashtable();
            h2.Add("name","Test名称");

            list.Add(ht1);
            list.Add(h2);

            return Json(list,JsonRequestBehavior.AllowGet);
        }
前台代码:
 $().ready(function() {
        $("#btnJSON").click(function() {
        $.getJSON("/Home/getJSON", function(data) {
                alert(data.length +" " + data[0].name);
            })
        })
    })
大家可以用firebug 跟踪一下,其实 给我们组合成了一个 json对象的数组
[{"name":"myName"},{"name":"Test名称"}]