问题描述
AJAX.NET2.0未在Webconfig中进行datatable和dataset添加序列化转换器的属性时,返回dataset报:序列化类型为"System.Reflection.Module"的对象时检测到循环引用错误。在Webconfig中进行datatable和dataset添加序列化转换器的属性后,报"WebServiceSample未定义"错误,求解,谢谢代码:aspx:<formid="form1"runat="server"><div><asp:ScriptManagerID="ScriptManager1"runat="server"><Services><asp:ServiceReferencePath="~/WebServiceSample.asmx"/></Services></asp:ScriptManager></div><div><inputid="btnGetDataTable"type="button"value="getTable"onclick="returnbtnGetDatatable_onclick()"/><divid="result"></div></div><scripttype="text/javascript"language="javascript">functionbtnGetDatatable_onclick(){WebServiceSample.GetDataTable("MyTable",onSucceeded);}functiononSucceeded(result){varidColName=result.columns[0].name;varnameColName=result.columns[1].name;varrows=result.rows;varbuilder=newSys.StringBuilder("<tableborder=1>");builder.append(String.format("<tr><td>{0}</td><td>{1}</td></tr>",idColName,nameColName));for(varrowIndex=0;rowIndex<rows.length;++rowIndex){builder.append(String.format("<tr><td>{0}</td><td>{1}</td></tr>",rows[rowIndex][idColName],rows[rowIndex][nameColName]));}builder.append("</talbe>");$get("result").innerHTML=builder.toString();}</script></form>cs:[System.Web.Script.Services.ScriptService]publicclassWebServiceSample:System.Web.Services.WebService{publicWebServiceSample(){//如果使用设计的组件,请取消注释以下行//InitializeComponent();}[WebMethod]publicstringEchoString(Strings){return"Hello"+s;}[WebMethod]publicDataTableGetDataTable(stringtableName){DataTabletable=newDataTable(tableName);table.Columns.Add(newDataColumn("Id",typeof(int)));table.Columns.Add(newDataColumn("Name",typeof(string)));for(inti=0;i<5;++i){DataRownewRow=table.NewRow();newRow["Id"]=i;newRow["Name"]=string.Format("name{0}",i);table.Rows.Add(newRow);}returntable;}webconfig:<system.web.extensions><scripting><webServices><jsonSerialization><converters><addname="DataSetConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter"/><addname="DataRowConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter"/><addname="DataTableConverter"type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter"/></converters></jsonSerialization></webServices></scripting></system.web.extensions>
解决方案
解决方案二:
轉換成XML傳[WebMethod]publicDataTableGetDataTable(stringtableName){……//-->publicXmlDocumentGetDataTable(stringtableName){……