前端脚本

 $("#sure").click(function () {
var tbody = $("#putsigal tbody");
var trs = tbody.find("tr");
var houses = "{\"houses\":[";
trs.each(function (i) {
var housename = $(this).find('input[name="housename"]').val();
var houseaddress = $(this).find('input[name="houseaddress"]').val();
var area = $(this).find('input[name="area"]').val();
alert(housename + "-" + houseaddress + "-" + area);
if (!housename || !houseaddress || !area) {
alert("第" + (i + ) + "行的仓库信息不完整");
return false;
} else {
var num = /^[-][-]+(.[-]{,}){,}$/;
if (!num.test(area)) {
alert("第" + (i + ) + "行的仓库面积输入不合法");
return false;
} houses += "{\"housename\":" + "\"" + housename + "\",\"houseaddress\":\"" + houseaddress + "\",\"area\":\"" + area + "\"},";
} })
var value = houses.substring(, houses.length - );
value += "]}"; $.ajax({
type: "post",
url: "/Service.asmx/AddHouse",
dataType: "json",
//contentType: "application/json; charset=utf-8",
data: { house: value },
success: function (data) {
// alert(data);
if (data.result == "") {
alert(data.message);
window.location.href = "WareHouse.aspx";
} else { alert(data.message); }
},
error: function(x, e) {
alert(x.responseText);
}, });
});

webservice 代码

[WebMethod]
public void AddHouse(string house)
{
HouseBll hb = new HouseBll();
JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType = "aplication/json";
string jsontext = house;
List<Warehouse> hs = new List<Warehouse>();
Data result = new Data();
JsonToobj json = new JsonToobj();
hs = json.JsonToHouses(jsontext);
foreach (Warehouse h in hs)
{
try { hb.AddHouse(h); result.result = "1"; result.message = "成功插入"; }
catch { result.result = "0"; result.message = "发生异常"; }
} Context.Response.Write(js.Serialize(result));
Context.Response.End();
}
 [WebMethod]
public string AddHouse(string house)
{
HouseBll hb = new HouseBll();
JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType = "aplication/json";
string jsontext = house;
List<Warehouse> hs = new List<Warehouse>();
Data result = new Data();
JsonToobj json = new JsonToobj();
hs = json.JsonToHouses(jsontext);
foreach (Warehouse h in hs)
{
try { hb.AddHouse(h); result.result = ""; result.message = "成功插入"; }
catch { result.result = ""; result.message = "发生异常"; }
} return js.Serialize(result); }

可以看到这个方法在写法上只有标红部分不同以及返回类型不同,其余均相同。第一个写法返回纯粹的json字符串,前端可以直接识别(本例中的前端脚本采用的第一种写法),而第二种写法则返回的是xml格式。在其格式下将json字符串包含在节点中。这种方式显然不是最方便的。原因就在于webservice 直接返回的是xml格式,而采用response.write的方法则是直接将结果写入返回流中,因此没有额外的格式限制。

亲测 asp.net 调用 webservice返回json的更多相关文章

  1. Asp.Net_Ajax调用WebService返回Json前台获取循环解析

    利用JQuery的$.ajax()可以很方便的调用 asp.net的后台方法.但往往从后台返回的json字符串不能够正确解析,究其原因,是因为没有对返回的json数据做进一步的加工.其实,这里只需 要 ...

  2. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  3. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

  4. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  5. 调用AJAX返回JSON、XML数据类型

    1.调用AJAX返回JSON数据 用下拉列表显示Nation表民族名称 主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...

  6. ASP.NET Core中返回 json 数据首字母大小写问题

    ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...

  7. asp.net webservice返回json问题

    使用jQuery $.ajax方法请求webservice 一.方法返回值为string,将json格式的字符串返回 设置contentType为"application/json;char ...

  8. Jquery调用Webservice传递Json数组

    Jquery由于提供的$.ajax强大方法,使得其调用webservice实现异步变得简单起来,可以在页面上传递Json字符串到Webservice中,Webservice方法进行业务处理后,返回Js ...

  9. C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法

    这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITE ...

随机推荐

  1. 【UR #12】实验室外的攻防战(BIT)

    [题目链接] http://uoj.ac/problem/180 [题意] 给定两个1..n的排列AB,只有当ai<ai+1才能交换ai和ai+1,问是否能够将A转换为B. [思路] 令a[i] ...

  2. good bye 2015 B - New Year and Old Property

    题意:统计在n,m之间的数的二进制表示形式只有一个零的数目. 位运算模拟+dfs #include<iostream> #include<string> #include< ...

  3. BNUOJ-26480 Horror List 最短路

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26480 题意:简单来说,就是给一个图,然后从每个honor list中的点求最短路.. 边 ...

  4. 系统时间不一致导致memcached的session不共享

    测试服务器需要做负载均衡,采用的是Nginx+Tomcat. 负载均衡配置成功之后,采用memcached配置session同步.总共4台服务器,三台服务器很顺利的配置成功,最后一台服务器死活不能共享 ...

  5. [C语言 - 14] 进制

    进制 二进制 int number = 0B1010; 没有二进制的输出格式   八进制     int number2 = 07613;     printf("number2 = %o\ ...

  6. 转载 ASP.NET中如何取得Request URL的各个部分

    转载原地址 http://blog.miniasp.com/post/2008/02/10/How-Do-I-Get-Paths-and-URL-fragments-from-the-HttpRequ ...

  7. (JAVA版)冒泡排序

    核心代码: public void bubbleSort(){ ;i<length-;i++){ ;j<length-i-;j++){ ]) swap(j,j+); } } } publi ...

  8. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  9. ASP.NET 学习的总结

    应用程序域 使用.Net建立的可执行程序*.exe,并没有直接承载到进程当中,而是承载到应用程序域(AppDomain)当中.应用程序域是.Net引入的一个新概念,它比进程所占用的资源要少,可以被看做 ...

  10. Struts的类型转换

    struts中jsp提交的数据,struts会自动转换为action中的属性类型: 对于基本的数据类型以及日期类型会自动转换: 就像前面那一篇博客的代码封装一样,会把字符串类型传过来的数据转化为相应的 ...