【发布时间】:2017-03-12 08:21:39
【问题描述】:
我在 asmx Web 服务中创建了一个 Web 方法,它使用 Context.Resopnse.Write 返回纯 JSON。
现在上面的行会将json数据写入请求的连接管道,但是如何接受来自作为web服务客户端的c#函数的响应。
这是我的网络服务方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetAllEmployeesFromEmpInPureJSON()
{
SqlConnection vConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
vConn.Open();
String vQuery = "Select * from Employee";
SqlDataAdapter vAdap = new SqlDataAdapter(vQuery, vConn);
DataSet vDs = new DataSet();
vAdap.Fill(vDs, "Employee");
vConn.Close();
DataTable vDt = vDs.Tables[0];
Context.Response.Write(JsonConvert.SerializeObject(vDt));
}
这里是客户端函数:
protected void Button1_Click(object sender, EventArgs e)
{
Lab25WebServiceSoapClient obj = new Lab25WebServiceSoapClient();
DataTable vDt = new DataTable();
//String jsonstring = obj.GetAllEmployeesFromEmpInPureJSON();
//vDt = JsonConvert.DeserializeObject(jsonstring) as DataTable;
GridView1.DataSource = vDt;
GridView1.DataBind();
}
这里下面两行不起作用,因为它是一个 void 类型的返回方法,当我返回字符串而不是使用上下文时,下面的代码将起作用。
String jsonstring = obj.GetAllEmployeesFromEmpInPureJSON();
vDt = JsonConvert.DeserializeObject(jsonstring) as DataTable;
我认为应该是这样的:
String jsonstring = Context.Request(obj.GetAllEmployeesFromEmpInPureJSON())
【问题讨论】:
标签: c# web-services