前端脚本

 $("#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. sqlserver任务导出Excle

    --sql语句就用下面的存储过程 /*--数据导出Excel 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性 ...

  2. 检测是否安装了 .NET Framework 3.5

    此脚本是为 Internet Explorer 设计的.    其他浏览器可能在 UserAgent 字符串中不包含 .NET CLR 信息. <HTML> <HEAD> &l ...

  3. prefuse学习(一)用非数据库连接和xml的方式读入数据

    prefuse正常的数据源需要从ConnectionFactory中生产出来,但是如果平时不想用里面给的方法得到数据,就需要手动创造Graph里面所需要的内容两个Table 下面是我自己写的从文件中读 ...

  4. HDU-4619 Warm up 2 二分匹配

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4619 一看就知道是二分匹配题目,对每个点拆点建立二分图,最后答案除2.因为这里是稀疏图,用邻接表处理. ...

  5. 怎样让你的代码更好的被JVM JIT Inlining

    好书推荐:Effective Java中文版(第2版) JVM JIT编译器优化技术有近100中,其中最最重要的方式就是内联(inlining).方法内联可以省掉方法栈帧的创建,方法内联还使让JIT编 ...

  6. homework01

    第一眼看到这个题目的时候就意识到这道题应该使用动态规划来解决,但因代码能力有限,因此从一维的问题开始解决,用C语言编写,代码如下: int maxsum(int *p,int size){ int i ...

  7. [Objective-c 基础 - 2.1] 封装

    A.封装内部细节,根据需求暴露方法 #import <Foundation/Foundation.h> @interface Student : NSObject { int age; } ...

  8. 如何使用validate.js进行动态添加和移除表单验证信息

    表单是我们在开当中的常客,那么对表单的验证也是必须的,那么如何实现动态给表单添加验证规则呢? 方法: 1,动态添加验证规则 // 添加$("#addConnectUser").ru ...

  9. WebService 设计总结

    接触过非常多电商的WebService,有种一看就蛋疼的设计,今天要从这个反例说一说 WebService 的设计. [WebMethod] public string QueryOrderDetai ...

  10. 如何选择一个 Linux Tracer (2015)

    http://www.oschina.net/translate/choosing-a-linux-tracer