asp.net项目下的web service返回json数据问题
2014-02-17 17:21
387 查看
App_Code目录下放置WebService.cs文件,文件内容如:
WebService.asmx文件可以放在网站跟目录下,跟目录下的页面请求WebService拿json数据时:
js对请求返回的数据进行处理,如下:
注意:要想拿到返回的json数据,web.config文件中system.web节点下必须加如下节点:
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.ServiceModel.Web; using System.Text; using System.Web; using System.Web.Script.Serialization; using System.Web.Script.Services; using System.Web.Services; using System.Web.UI.WebControls; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] public void GetStores(string deliveryStartTime, string deliveryEndTime, bool is20To22 = false, string cityPOSCodePrefix = "960") { var storeListJson = new StringBuilder(); // var storeList = GetStoreList(deliveryStartTime, deliveryEndTime, is20To22, cityPOSCodePrefix); storeListJson.Append("["); foreach (var store in storeList) { string format = "{{\"Value\":\"{0}\", \"Text\":\"{1}\"}}"; storeListJson.Append(string.Format(format, store.Value.ToString(), store.Text.ToString())); storeListJson.Append(","); } storeListJson.Remove(storeListJson.Length - 1, 1); storeListJson.Append("]"); // Context.Response.Clear(); Context.Response.ContentType = "text/json; charset=utf-8"; //Context.Response.AddHeader("content-disposition", "attachment; filename=export.json"); //Context.Response.AddHeader("content-length", storeListJson.Length.ToString()); Context.Response.Flush(); Context.Response.Write(storeListJson); } }
WebService.asmx文件可以放在网站跟目录下,跟目录下的页面请求WebService拿json数据时:
var url = "/webservice.asmx/GetStores?cityPOSCodePrefix=" + cityPOSCodePrefix + "&deliveryStartTime=" + deliveryStartTime + "&deliveryEndTime=" + deliveryEndTime + "&is20To22=" + is20To22;
js对请求返回的数据进行处理,如下:
$.ajax({ url: url, type: 'get', async: false, contentType: 'text/json; charset=utf-8', success: function (result) { //alert(result.d[0]); var storeListString = ""; var storeLiValueStart = "<li style=\"float: left; margin-left: 40px; margin-top: 8px; width: 120px; border-radius: 8px; background-color: #FFF; border: 2px solid rgb(0,119,175);color:#0077af; padding: 4px 0px; text-align: center; cursor: pointer\" id=\""; var storeLiValueEndAndTextStart = "\">"; var storeLiTextEnd = "</li>"; for (var i = 0; i < result.length; i++) { storeListString += storeLiValueStart; storeListString += result[i].Value; storeListString += storeLiValueEndAndTextStart; storeListString += result[i].Text; storeListString += storeLiTextEnd; } $("#storeListTest").html(storeListString); }
注意:要想拿到返回的json数据,web.config文件中system.web节点下必须加如下节点:
<webServices> <protocols> <add name="HttpGet" /> </protocols> </webServices>
相关文章推荐
- 【转载】使用Json比用string返回数据更友好,也更面向对象一些 |Asp.net MVC 2.0 + Unity 2.0(IoC) + EF4.0 实例:RoRoWoBlog 开源项目框架代码
- Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- 用JS解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 奇怪的问题:在asp.net MVC的action方法中,如果有重定向语句,则返回json数据是无效的
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
- Asp.Net WebAPI配置接口返回数据类型为Json格式
- ASP.Net Core 返回的json数据,自定义日期格式
- ASP.NET WEB API 返回JSON 出现2个双引号问题
- Asp.net配合easyui实现返回json数据实例
- 解决ASP.NET MVC的FileStreamResult无法正确返回数据问题
- Asp.net无刷新调用后台实体类数据并以Json格式返回
- asp.net mvc linq to entity 查询指定列的数据以json字符串格式返回数据
- Json+jquery+asp.net 返回数据库数据
- jQuery AJax调用asp.net WebServers返回json问题总结