现在使用jQuery $.getJSON 来调用WebService,WebService返回json字符串。但在返回后不知怎么处理了。
前台html部分:<script type="text/javascript">
//省
function ProvinceBind() {
//清空
$("#Province").empty();
$("#Province").append("<option selected value=\"\">请选择...</option>");
var oSheng = $("#Province");
$.getJSON(
"AreaService.asmx/GetProvince",
function(json) {
$.each(json, function(i) {
$("#Province").append("<option value=\"" + json[i].Code + "\">" + json[i].Name + "</option>");
});
}
);
}
$(document).ready(function() {
ProvinceBind();
});
</script><select id="Province" name="Province">
<option value="">请选择...</option>
</select>
WebService部分:[WebMethod]
public string GetProvince()
{
StringBuilder sb = new StringBuilder();
DataSet ds = new ChinaBond.BLL.T_Province().GetProvinceList("");
if (ds == null || ds.Tables[0].Rows.Count == 0)
return ""; sb.Append("[");
int i = 0;
foreach (DataRow item in ds.Tables[0].Rows)
{
string temp = "{";
temp += string.Format("Code:\"{0}\",Name:\"{1}\"", item["Code"].ToString().Trim(), item["Name"].ToString().Trim());
temp += "}";
if ((++i) < ds.Tables[0].Rows.Count)
temp += ",";
sb.Append(temp);
}
if (ds.Tables[0].Rows.Count > 0)
sb.Append("]"); return sb.ToString();
}
用FireBug看到的返回信息:<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">[{Code:"110000",Name:"北京市"},{Code:"120000",Name:"天津市"},{Code:"130000",Name:"河北省"},{Code:"140000",Name:"山西省"},{Code:"150000",Name:"内蒙古"},{Code:"210000",Name:"辽宁省"},{Code:"220000",Name:"吉林省"},{Code:"230000",Name:"黑龙江"},{Code:"310000",Name:"上海市"},{Code:"320000",Name:"江苏省"},{Code:"330000",Name:"浙江省"},{Code:"340000",Name:"安徽省"},{Code:"350000",Name:"福建省"},{Code:"360000",Name:"江西省"},{Code:"370000",Name:"山东省"},{Code:"410000",Name:"河南省"},{Code:"420000",Name:"湖北省"},{Code:"430000",Name:"湖南省"},{Code:"440000",Name:"广东省"},{Code:"450000",Name:"广西省"},{Code:"460000",Name:"海南省"},{Code:"500000",Name:"重庆市"},{Code:"510000",Name:"四川省"},{Code:"520000",Name:"贵州省"},{Code:"530000",Name:"云南省"},{Code:"540000",Name:"西 藏"},{Code:"610000",Name:"陕西省"},{Code:"620000",Name:"甘肃省"},{Code:"630000",Name:"青海省"},{Code:"640000",Name:"宁 夏"},{Code:"650000",Name:"新 疆"},{Code:"710000",Name:"台湾省"},{Code:"810000",Name:"香 港"},{Code:"820000",Name:"澳 门"}]</string>
怎么在前台写js才可以处理返回的字符串呢?
前台html部分:<script type="text/javascript">
//省
function ProvinceBind() {
//清空
$("#Province").empty();
$("#Province").append("<option selected value=\"\">请选择...</option>");
var oSheng = $("#Province");
$.getJSON(
"AreaService.asmx/GetProvince",
function(json) {
$.each(json, function(i) {
$("#Province").append("<option value=\"" + json[i].Code + "\">" + json[i].Name + "</option>");
});
}
);
}
$(document).ready(function() {
ProvinceBind();
});
</script><select id="Province" name="Province">
<option value="">请选择...</option>
</select>
WebService部分:[WebMethod]
public string GetProvince()
{
StringBuilder sb = new StringBuilder();
DataSet ds = new ChinaBond.BLL.T_Province().GetProvinceList("");
if (ds == null || ds.Tables[0].Rows.Count == 0)
return ""; sb.Append("[");
int i = 0;
foreach (DataRow item in ds.Tables[0].Rows)
{
string temp = "{";
temp += string.Format("Code:\"{0}\",Name:\"{1}\"", item["Code"].ToString().Trim(), item["Name"].ToString().Trim());
temp += "}";
if ((++i) < ds.Tables[0].Rows.Count)
temp += ",";
sb.Append(temp);
}
if (ds.Tables[0].Rows.Count > 0)
sb.Append("]"); return sb.ToString();
}
用FireBug看到的返回信息:<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">[{Code:"110000",Name:"北京市"},{Code:"120000",Name:"天津市"},{Code:"130000",Name:"河北省"},{Code:"140000",Name:"山西省"},{Code:"150000",Name:"内蒙古"},{Code:"210000",Name:"辽宁省"},{Code:"220000",Name:"吉林省"},{Code:"230000",Name:"黑龙江"},{Code:"310000",Name:"上海市"},{Code:"320000",Name:"江苏省"},{Code:"330000",Name:"浙江省"},{Code:"340000",Name:"安徽省"},{Code:"350000",Name:"福建省"},{Code:"360000",Name:"江西省"},{Code:"370000",Name:"山东省"},{Code:"410000",Name:"河南省"},{Code:"420000",Name:"湖北省"},{Code:"430000",Name:"湖南省"},{Code:"440000",Name:"广东省"},{Code:"450000",Name:"广西省"},{Code:"460000",Name:"海南省"},{Code:"500000",Name:"重庆市"},{Code:"510000",Name:"四川省"},{Code:"520000",Name:"贵州省"},{Code:"530000",Name:"云南省"},{Code:"540000",Name:"西 藏"},{Code:"610000",Name:"陕西省"},{Code:"620000",Name:"甘肃省"},{Code:"630000",Name:"青海省"},{Code:"640000",Name:"宁 夏"},{Code:"650000",Name:"新 疆"},{Code:"710000",Name:"台湾省"},{Code:"810000",Name:"香 港"},{Code:"820000",Name:"澳 门"}]</string>
怎么在前台写js才可以处理返回的字符串呢?
var obj = evel(result).d;
获得这个对象。
WebService里面自定义的json。
不能用return
要用responsereturn sb.ToString();
改成:
this.Response.Write(sb.ToString());
dataType: 'json',var a= new Object();
$.post("Test.ashx", "uname=" + JSON.stringify(a), function(result) {
alert($(result).find("Message").text());
});post方式就用
string name = context.Request.Form["uname"];
http://topic.csdn.net/u/20091029/18/1d64c2e7-8dda-42da-aeab-576c2a817797.html
//清空
$("#Province").empty();
$("#Province").append("<option selected value=\"\">请选择...</option>");
var oSheng = $("#Province");
$.getJSON(
"ProvinceHandler.ashx",
function(json) {
$.each(json, function(i) {
$("#Province").append("<option value=\"" + json[i].Code + "\">" + json[i].Name + "</option>");
});
}
);
}这样是正确的,在select控件中可以把数据绑定上。
现在问题是我想用WebService来实现数据的返回。