0
Jsonの助けを借りてテーブルを表示する必要がありますが、エラーが表示されます。 'System.Reflection.RuntimeModule''System.Reflection.RuntimeModule'タイプのオブジェクトをシリアル化している間に循環参照が検出されましたMVC JSON
Index.cshtml
var table = $('#maintable').DataTable({
"ajax": {
"type": "POST",
"url": '@Url.Action("BindDatatable", "Sales")',
"data": { itemtyyID: $("#ddl_item").val(), itloccid: $("#getlocation").val() },
//"contentType": application/json,
"traditional": true,
"datatype": "json",
"dataSrc": function (json) {
//Make your callback here.
alert("Done!");
// var x = JSON.parse(json);
// return x;
return json.data;
}
},
"columns": [
{ "data": "Item", "autowidth": true },
{ "data": "qty", "autowidth": true },
{ "data": "rate", "autowidth": true },
{ "data": "ppb", "autowidth": true, "visible": false }
],
select: true
});
SalesController.cs
[HttpPost]
public JsonResult BindDatatable(string itemtyyID, string itloccid)
{
Int32 itemtyyIDD, itloccIDD;
DataSet ds = new DataSet();
if (!string.IsNullOrEmpty(itemtyyID) && !string.IsNullOrEmpty(itloccid))
{
itemtyyIDD = Convert.ToInt32(itemtyyID);
itloccIDD = Convert.ToInt32(itloccid);
}
else
{
itemtyyIDD = 0;
itloccIDD = 0;
}
DataTable dt = new DataTable();
OracleCommand cmdsp = new OracleCommand();
cmdsp.CommandType = System.Data.CommandType.StoredProcedure;
cmdsp.CommandText = "Pkg_Inventory.Prc_sale_stock";
cmdsp.Parameters.Add("ITEMYYID", OracleType.Int32, 25).Value = itemtyyIDD;
cmdsp.Parameters.Add("ITLOCID", OracleType.Int32, 25).Value = itloccIDD;
cmdsp.Parameters.Add("SALESTOCK", OracleType.Cursor).Direction = ParameterDirection.Output;
cmdsp.Parameters.Add("Pmsg", OracleType.VarChar, 10).Direction = ParameterDirection.Output;
dt = MyContext.FillDataTable(cmdsp);
List<justatest.Models.SalesModel.Sales> details = new List<justatest.Models.SalesModel.Sales>();
if (cmdsp.Parameters["Pmsg"].Value.ToString() == "T")
{
foreach (DataRow dtrow in dt.Rows)
{
justatest.Models.SalesModel.Sales user = new justatest.Models.SalesModel.Sales();
user.Item = dtrow["item"].ToString();
user.qty = dtrow["quan"].ToString();
user.rate = dtrow["rate"].ToString();
user.ppb = dtrow["price_bag"].ToString();
details.Add(user);
}
}
var data = details.ToArray();
return Json(new { data = data}, JsonRequestBehavior.AllowGet);
}
の型のオブジェクトをシリアル化しながら、循環参照が検出された
モデル(Sales.cs)
JSONシリアライザでサポートされていない、あなたのオブジェクト階層におけるpublic class Sales { public Sales() { } public string Item { get; set; } public string Loc { get; set; } public Int64 ID { get; set; } public Int64 SALES_R_ID { get; set; } public Int64 car_IDD { get; set; } public Int64 driver_IDD { get; set; } public Int64 labor_IDD { get; set; } public string qty { get; set; } public Int64 t_qty { get; set; } public Int64 ship_qty { get; set; } public string rate { get; set; } public string ppb { get; set; } public string inv_lock_id { get; set; } public string Nameofcustomer { get; set; } public string Descrip { get; set; } public DateTime Date { get; set; } public Int32 InvoiceID { get; set; } public Int32 TotAmount { get; set; } public Int32 Disc { get; set; } public Int32 GTotal { get; set; } public Int32 Customer_Presence { get; set; } public Int32 paid { get; set; } public Int32 pay_amt { get; set; } public Int32 ship { get; set; } public Int32 shipamt { get; set; } public Int32 trips_no { get; set; } public Int32 bags_no { get; set; } [Required(ErrorMessage = "Customer Name is Required")] public string Customer_Name { get; set; } [MaxLength(7)] [MinLength(1)] [RegularExpression("^[0-9]*$", ErrorMessage = "Loan must be numeric")] public string LoanAmount { get; set; } [MaxLength(7)] [MinLength(1)] [RegularExpression("^[0-9]*$", ErrorMessage = "Loan must be numeric")] public string ReceivedLoan { get; set; } public DataTable GetItems() { //this.Address = "N/A"; DataTable dt = new DataTable(); OracleCommand CmdCommand = new OracleCommand(); CmdCommand.CommandType = System.Data.CommandType.StoredProcedure; CmdCommand.CommandText = "Pkg_Inventory.PRC_Shop_Sale_Stock"; CmdCommand.Parameters.Add("SHOPSALE", OracleType.Cursor).Direction = ParameterDirection.Output; CmdCommand.Parameters.Add("PMSG", OracleType.VarChar, 10).Direction = ParameterDirection.Output; dt = MyContext.FillDataTable(CmdCommand); return dt; } //For Item List public System.Web.Mvc.SelectList DT1SelectList(DataTable de, string valueField, string textField, object selectedvalue) { if (de == null || valueField == null || valueField.Trim().Length == 0 || textField == null || textField.Trim().Length == 0) return null; var list = new List<Object>(); for (int i = 0; i < de.Rows.Count; i++) { list.Add(new { value = de.Rows[i][valueField].ToString(), text = de.Rows[i][textField].ToString() }); } return new System.Web.Mvc.SelectList(list.AsEnumerable(), "value", "text", selectedvalue); } //For Car public System.Web.Mvc.SelectList DT2SelectList(DataTable de, string valueField, string textField, object selectedvalue) { if (de == null || valueField == null || valueField.Trim().Length == 0 || textField == null || textField.Trim().Length == 0) return null; var list = new List<Object>(); for (int i = 0; i < de.Rows.Count; i++) { list.Add(new { value = de.Rows[i][valueField].ToString(), text = de.Rows[i][textField].ToString() }); } return new System.Web.Mvc.SelectList(list.AsEnumerable(), "value", "text", selectedvalue); } //For Driver public System.Web.Mvc.SelectList DT3SelectList(DataTable de, string valueField, string textField, object selectedvalue) { if (de == null || valueField == null || valueField.Trim().Length == 0 || textField == null || textField.Trim().Length == 0) return null; var list = new List<Object>(); for (int i = 0; i < de.Rows.Count; i++) { list.Add(new { value = de.Rows[i][valueField].ToString(), text = de.Rows[i][textField].ToString() }); } return new System.Web.Mvc.SelectList(list.AsEnumerable(), "value", "text", selectedvalue); } //For Labor public System.Web.Mvc.SelectList DT4SelectList(DataTable de, string valueField, string textField, object selectedvalue) { if (de == null || valueField == null || valueField.Trim().Length == 0 || textField == null || textField.Trim().Length == 0) return null; var list = new List<Object>(); for (int i = 0; i < de.Rows.Count; i++) { list.Add(new { value = de.Rows[i][valueField].ToString(), text = de.Rows[i][textField].ToString() }); } return new System.Web.Mvc.SelectList(list.AsEnumerable(), "value", "text", selectedvalue); } //For sales Invoice public DataTable GetInvoice() { DataTable dt = new DataTable(); OracleCommand CmdCommand = new OracleCommand(); CmdCommand.CommandType = System.Data.CommandType.StoredProcedure; CmdCommand.CommandText = "Pkg_Sales.Prc_Show_Invoice"; CmdCommand.Parameters.Add("SALES_REF_ID", OracleType.Int32, 25).Value = InvoiceID; CmdCommand.Parameters.Add("SALECUR", OracleType.Cursor).Direction = ParameterDirection.Output; CmdCommand.Parameters.Add("PMSG", OracleType.VarChar, 10).Direction = ParameterDirection.Output; dt = MyContext.FillDataTable(CmdCommand); return dt; } //For sales Details public DataTable GetSaleDetails() { DataTable dt = new DataTable(); OracleCommand CmdCommand = new OracleCommand(); CmdCommand.CommandType = System.Data.CommandType.StoredProcedure; CmdCommand.CommandText = "Pkg_Sales.Prc_Show_Sale_Details"; CmdCommand.Parameters.Add("SALES_REF_ID", OracleType.Int32, 25).Value = InvoiceID; CmdCommand.Parameters.Add("SALECUR", OracleType.Cursor).Direction = ParameterDirection.Output; CmdCommand.Parameters.Add("PMSG", OracleType.VarChar, 10).Direction = ParameterDirection.Output; dt = MyContext.FillDataTable(CmdCommand); return dt; } //For Item Details public DataTable GetItemDetails() { DataTable dt = new DataTable(); OracleCommand CmdCommand = new OracleCommand(); CmdCommand.CommandType = System.Data.CommandType.StoredProcedure; CmdCommand.CommandText = "Pkg_Sales.Prc_Show_Item_Details"; CmdCommand.Parameters.Add("SALES_REF_ID", OracleType.Int32, 25).Value = InvoiceID; CmdCommand.Parameters.Add("SALECUR", OracleType.Cursor).Direction = ParameterDirection.Output; CmdCommand.Parameters.Add("PMSG", OracleType.VarChar, 10).Direction = ParameterDirection.Output; dt = MyContext.FillDataTable(CmdCommand); return dt; } //For Item Shipment public DataTable GetItemShipment() { DataTable dt = new DataTable(); OracleCommand CmdCommand = new OracleCommand(); CmdCommand.CommandType = System.Data.CommandType.StoredProcedure; CmdCommand.CommandText = "Pkg_Sales.PRC_Ship_Details"; CmdCommand.Parameters.Add("SALE_R_ID", OracleType.Int32, 25).Value = InvoiceID; CmdCommand.Parameters.Add("SHIPCURSOR", OracleType.Cursor).Direction = ParameterDirection.Output; CmdCommand.Parameters.Add("PMSG", OracleType.VarChar, 10).Direction = ParameterDirection.Output; dt = MyContext.FillDataTable(CmdCommand); return dt; } public DataTable SaleDetails { get { return GetSaleDetails(); } } public DataTable ItemDetails { get { return GetItemDetails(); } } public DataTable ItemShipment { get { return GetItemShipment(); } } public string JavascriptToRun { get; set; } }
のStackTrace
<!DOCTYPE html> <html> <head> <title>A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.</title> <meta name="viewport" content="width=device-width" /> <style> body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt} .marker {font-weight: bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } @media screen and (max-width: 639px) { pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; } } @media screen and (max-width: 479px) { pre { width: 280px; } } </style> </head> <body bgcolor="white"> <span><H1>Server Error in '/justatest' Application.<hr width=100% size=1 color=silver></H1> <h2> <i>A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.</i> </h2></span> <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> <b> Description: </b>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. <br><br> <b> Exception Details: </b>System.InvalidOperationException: A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.<br><br> <b>Source Error:</b> <br><br> <table width=100% bgcolor="#ffffcc"> <tr> <td> <code> An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.</code> </td> </tr> </table> <br> <b>Stack Trace:</b> <br><br> <table width=100% bgcolor="#ffffcc"> <tr> <td> <code><pre> [InvalidOperationException: A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.] System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember) +1767 System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember) +166 System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +793
は完全なスタックトレースを追加してください:
はあなたのような何かを持っている必要があります。 – Fildor