Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我返回一个json对象并得到一个输出_C#_Asp.net_Ajax_Json_Asp.net Mvc - Fatal编程技术网

C# 我返回一个json对象并得到一个输出

C# 我返回一个json对象并得到一个输出,c#,asp.net,ajax,json,asp.net-mvc,C#,Asp.net,Ajax,Json,Asp.net Mvc,我返回了一个json对象,但得到了错误的输出。 我想让json对象打印CompanyName、AddressCompany和PhoneCompany。 我需要在getProductData中更改什么? 这是我们的代码: public ActionResult GetProductData(int ProductId) { var data = from m in db.Products join sa in db.Sup

我返回了一个json对象,但得到了错误的输出。 我想让json对象打印CompanyName、AddressCompany和PhoneCompany。 我需要在getProductData中更改什么? 这是我们的代码:

public ActionResult GetProductData(int ProductId)
        {
            var data = from m in db.Products
                  join sa in db.SupPro on m.ProductID equals sa.ProductID
                  join f in db.Supplier on sa.CompanyID equals f.CompanyID
                  where m.ProductID == ProductId
                  select new { CompanyName = f.NameS, AdressCompany = f.Address, PhoneCompany = f.Phone };
            return Json(new { foo = data.ToList(), ball = "dragon", elementId = ProductId }, JsonRequestBehavior.AllowGet);
        }
这是我的输出: 数据资源:[对象]


谢谢。

我想你在这里想要实现的是:

var res = (from e in db.SupPro
           join sa in db.Supplier on e.CompanyID equals sa.CompanyID
           where e.ProductID == ProductId
           select sa).ToList();

return Json(new { foo = res, ball = "dragon", elementId = ProductId }, JsonRequestBehavior.AllowGet);

这将触发从数据库读取数据,并将其设置为JSON响应中
foo
属性的值

我认为你在这里想要实现的是:

var res = (from e in db.SupPro
           join sa in db.Supplier on e.CompanyID equals sa.CompanyID
           where e.ProductID == ProductId
           select sa).ToList();

return Json(new { foo = res, ball = "dragon", elementId = ProductId }, JsonRequestBehavior.AllowGet);

这将触发从数据库读取数据,并将其设置为JSON响应中
foo
属性的值

不清楚你想要实现什么。您想得到查询的结果,仅仅是生成的查询,还是两者都要?尝试返回
字符串的目的是什么?您期望的值是什么?我返回一个json对象,json对象在获取的参数中需要一个字符串。不。。。它将自动将您的对象转换为字符串,然后传递给响应。
foo
的值将是一个包含查询结果的每个属性/值的对象,该属性/值应该是(如果不是,您将无法访问这些值)您不清楚要实现什么。您想得到查询的结果,仅仅是生成的查询,还是两者都要?尝试返回
字符串的目的是什么?您期望的值是什么?我返回一个json对象,json对象在获取的参数中需要一个字符串。不。。。它将自动将您的对象转换为字符串,然后传递给响应。
foo
的值将是一个包含查询结果的每个属性/值的对象,该属性/值应该是(如果不是,您将无法访问这些值)它不起作用错误是:“序列化类型的对象时检测到循环引用”System.Data.Entity.DynamicProxies.SupPro_8c6d07551525397725ce757c5b55c4e144c5e94daf9869481208cff841d0f68cathen您的查询中有一个循环引用(您有一个作为类集合的属性)。修改它以返回仅包含需要返回的属性的匿名对象集合。您需要显示您的模型这是模型:公共类SupPro{[Key]public int SupProID{get;set;}public int CustomerID{get;set;}public int ProductID{get;set;}public int CompanyID{get;set;}public DateTime SupplyDate{get;set;}公共虚拟产品产品{get;set;}公共虚拟供应商供应商{get;set;}公共虚拟客户客户{get;set;}编辑您的问题(不在评论中)。您需要显示所有模型-
产品
供应商
客户
-其中一个对象包含一个属于其他类的属性-例如,产品包含供应商和供应商包含产品集合我在主要问题中添加了它。它不起作用错误是:“序列化类型为“System.Data.Entity.DynamicProxies.SupPro_8C6D0751525397725CE757C5B55C4E144C5E94DAF9869481208CFF841D0F68CAThen”的对象时检测到循环引用如果查询中有循环引用(您有一个属于类集合的属性)。修改它以返回仅包含需要返回的属性的匿名对象集合。您需要显示您的模型这是模型:公共类SupPro{[Key]public int SupProID{get;set;}public int CustomerID{get;set;}public int ProductID{get;set;}public int CompanyID{get;set;}public DateTime SupplyDate{get;set;}公共虚拟产品产品{get;set;}公共虚拟供应商供应商{get;set;}公共虚拟客户客户{get;set;}编辑您的问题(不在评论中)。您需要显示所有模型-
产品
供应商
客户
-其中一个对象包含一个属于其他类的属性-例如,产品包含供应商和供应商包含产品集合我在主要问题中添加了它。