如何在asp.NETWebForm的jQueryAjax中使用c#datatable?
伙计们,我想把一个数据表从c#发送到jQueryAjax。如果我发送字符串,它工作正常,如果我发送数据表,它会给出下面我发布的输出错误如何在asp.NETWebForm的jQueryAjax中使用c#datatable?,c#,asp.net,jquery,webforms,C#,Asp.net,Jquery,Webforms,伙计们,我想把一个数据表从c#发送到jQueryAjax。如果我发送字符串,它工作正常,如果我发送数据表,它会给出下面我发布的输出错误 [WebMethod] public static DataTable getGuestByGuestIDFront(string guest_id) { DataTable dt621 = BAL.getGuestByGuestID(guest_id);
[WebMethod]
public static DataTable getGuestByGuestIDFront(string guest_id)
{
DataTable dt621 = BAL.getGuestByGuestID(guest_id);
return dt621;
}
Jquery
< script type = "text/javascript" >
function guest_search() {
// debugger;
var guest_id = $('#guest_id').val();
jQuery.ajax({
url: 'Walkin6.aspx/getGuestByGuestIDFront',
type: "POST",
data: "{'guest_id':" + guest_id + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
debugger;
// TabItem2_click();
console.log(data.d);
// alert("Booking ID " + data.d);
// $("#message").html((data.d));
// $(this).prop("disabled", true);
},
error: function (result) {
console.log('Failed' + result.responseText);
}
});
} < /script>
这就是输出
失败{“Message”:“序列化类型为\u0027System.Reflection.RuntimeModule\u0027的对象时检测到循环引用。”,“StackTrace”:“at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal”(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationEnumerable(IEnumerable enumerable,StringBuilder sb,Int32 depth,Hashtable ObjectsUse,SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationCustomObject(对象o、StringBuilder sb、Int32深度、哈希表Object正弦、SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationEnumerable(IEnumerable enumerable,StringBuilder sb,Int32 depth,Hashtable ObjectsUse,SerializationFormat SerializationFormat)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValueInternal(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.Script.Serialization.JavaScriptSerializer.SerializationValue(对象o、StringBuilder sb、Int32深度、哈希表对象正弦、SerializationFormat SerializationFormat、MemberInfo currentMember)\r\n位于System.Web.S
[WebMethod]
public static string doSomething(int id)
{
DataTable dt621 = BAL.getGuestByGuestID(guest_id);
return JsonConvert.SerializeObject(dt621);
}
success: function (data) {
var tableData = $.parseJSON(data.d);//if you want your data in json
}
[WebMethod]
public static string getGuestByGuestIDFront(string guest_id)
{
DataTable dt = BAL.getGuestByGuestID(guest_id);
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row = null;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
string json = js.Serialize(rows);
return json;
}
success: function (serverdata) {
var tableData = $.parseJSON(serverdata.d);
}