C# 将返回的类对象发送到Ajax调用
我的目标是向C# 将返回的类对象发送到Ajax调用,c#,asp.net,ajax,class,C#,Asp.net,Ajax,Class,我的目标是向Default.aspx中的Ajax调用发送返回的类对象 Default.aspx向[WebMethod]:{ID:someid}发送一个json字符串 connectionstring jsonobject定义了jsondata.mdf jsondata.mdf包含列:idd、datetime、col1、col2和col3,其中包含多行数据 回流管有问题: return json2.ToArray(); Default.aspx.cs [System.Web.Servic
Default.aspx
中的Ajax调用发送返回的类对象
Default.aspx
向[WebMethod]:{ID:someid}
发送一个json字符串
connectionstring jsonobject定义了jsondata.mdf
jsondata.mdf包含列:idd、datetime、col1、col2
和col3
,其中包含多行数据
回流管有问题:
return json2.ToArray();
Default.aspx.cs
[System.Web.Services.WebMethod]
public static string GetJSONdata(string ID)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
string connStr = ConfigurationManager.ConnectionStrings["jsonobject"].ConnectionString;
string cmdStr = "SELECT ([idd],[datetime],[col1],[col2],[col3]) FROM [jsondata] WHERE [idd]=@idd;";
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@idd", ID);
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
dt = ds.Tables[0];
}
}
}
}
catch (Exception ex)
{
}
List<dataclass> classdata = new List<dataclass>();
foreach (DataRow dr in dt.Rows)
{
dataclass dc = new dataclass();
dc.idd = Convert.ToString(dr["idd"]);
dc.datetime = Convert.ToString(dr["datetime"]);
dc.col1 = Convert.ToString(dr["col1"]);
dc.col2 = Convert.ToString(dr["col2"]);
dc.col3 = Convert.ToString(dr["col3"]);
classdata.Add(dc);
}
return classdata.ToArray();
}
你对那条线有什么问题?我们不会在您的计算机上看到异常,因此您需要主动告诉我们问题是什么。顺便说一句,您应该使用or.Error代码:无法将类型“JSONwebmethod.dataclass[]”隐式转换为“string”,现在我很困惑,因为您说问题出在
return json2.ToArray()
上,但代码中没有这一行。您需要明确异常发生的位置以及异常是什么。请编辑您的帖子以清除此错误。当webmethod指定字符串时,您返回的是一个数组。看起来您想要返回一个JSON对象。在返回数组作为响应之前,需要对数组进行JSON序列化。
public class dataclass
{
public string idd { get; set; }
public string datetime { get; set; }
public string col1 { get; set; }
public string col2 { get; set; }
public string col3 { get; set; }
}