添加一个名为JsonData的Action方法 在JsonData方法中创建一个Customer对象并初始化属性 在JsonData方法中调用基类的Json方法,该方法会返回一个JsonResult对象,该对象可以将Customer对象转换成JSON串
第三步.在客户端(浏览器)添加请求JSON数据的代码
右键名为Index的Action,选择“添加View”为它创建一个叫Index的View
在View中引用jQuery
添加一个Button按钮,并绑定点击事件
在页面<script>标签中添加以下JavaScript代码
第四步.运行测试
按F5运行应用
实验七:Post Request – JavaScript发送JSON数据
第一步.在原有项目相同的Controller中,创建一个名为JsonPost的Action方法
第二步.编写客户端(浏览器)发送JSON数据的代码
在原有View(aspx页面)中添加另一个Button在<script>标签中添加以下JavaScript代码
注:在ASP.NET MVC中,并没有要求你显式地将JavaScript对象转换成JSON串,反之亦然。这些工作系统内部默认自动完成了。
第三步.运行测试
按F5运行应用,点击Button按钮查看输出
WCF中的JSON
接下来,服务器端技术我们使用WCF REST。
实验八:Get Request – JavaScript请求JSON数据
第一步.创建WCF项目
第二步.移除不必要的文件
移除IService1.cs和Service1.svc文件
第三步.创建新服务
右键项目,点击添加>新建项。选择WCF Service,命名为JsonTest。这个过程会在项目中创建两个新内容,一个是IJsonTest.cs(服务协议),另一个是JsonTest.svc(具体服务)。
第四步.创建操作协议
打开IJsonTest.cs文件,添加一个名为GetJsonData的方法
第五步.实现操作
打开JsonTest.svc文件,实现GetJsonData方法
第六步.创建一个Rest节点
打开Web.config配置文件 找到System.ServiceModel节点在该节点内部新增加services标签,在新增加的标签内部创建service标签,指向我们刚创建的服务
在新增加的service节点中作如下配置
第七步.给GetJsonData方法添加WebInvoke属性
第八步.在客户端(浏览器)中编写请求JSON数据的代码
新建一个HTML文件,命名为WCFRestClient.html,在页面中引用jQuery 跟前面几个实验一样,在页面中添加一个Button按钮,并绑定点击事件
第九步.运行测试
按F5运行,打开WCFRestClient.html页面,点击按钮
实验九:Post Request – JavaScript发送JSON数据
第一步.创建新的操作协议
在IJsonTest.cs中再新添加一个方法,命名为PostJsonData
第二步.实现操作
打开JsonTest.svc文件,实现刚新添加的PostJsonData方法
第三步.给PostJsonData方法添加WebInvoke属性
第四步.在客户端(浏览器)中编写发送JSON的代码
在原来的WCFRestClient.html页面中,再新加一个Button按钮,绑定点击事件 在<script>标签中编写如下JavaScript代码
注意不再是使用$.post方法,而是使用$.ajax。因为我们需要设置contenttype属性为application/json。$.post是$.ajax的一个封装,没有$.ajax灵活。
第五步.运行测试
按F5运行应用
Web API中的JSON
我们知道,WCF Rest让我们可以创建HTTP服务,但是,它真正的目的是为了支持SOA。在微软技术中,我们还可以使用ASP.NET Web API来创建HTTP服务。
我将来会着重讨论Web API和WCF Rest。这次我们就把注意力集中在WebAPI与JavaScript的交互上。
实验十:Get Request – JavaScript请求JSON数据
第一步.创建Web API项目
打开Visual Studio,点击文件>新建>项目,选择ASP.NET MVC4项目。在模板选择对话框中,选择WebAPI,点击OK
第二步.移除所有不必要的文件
移除所有已经存在的Controller,View以及CSS文件。
第三步.创建APIController
右键Controller,选择添加>Controller 在添加Controller对话框中键入名称,如JsonController 选择一个空白的API Controller模板 点击OK第四步.创建Action方法
你会发现JsonController的基类是APIController(不是Controller,译者注),接下来在JsonController类中新加一个名为GET的Action方法