【问题标题】:i return a json object and i get an output我返回一个 json 对象并得到一个输出
【发布时间】:2015-09-07 15:05:36
【问题描述】:

我返回一个 json 对象,我得到错误的输出。 我想让 json 对象打印 CompanyName、AdressCompany 和 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);
        }

这是我的输出: 数据资源:[object Object]

谢谢。

【问题讨论】:

  • 不清楚你想要实现什么。你想得到查询的结果,只是生成的查询还是两者兼而有之?
  • 尝试返回string 有什么意义?您期望的价值是多少?
  • 我返回一个 json 对象,而一个 json 对象在他获取的参数中需要一个字符串。
  • 不...它将自动将您的对象转换为字符串,然后将其传递给响应。
  • foo 的值将是一个包含查询结果的每个属性/值的对象(如果不是,您将无法访问这些值) )

标签: c# asp.net ajax json asp.net-mvc


【解决方案1】:

我认为您在这里想要实现的目标如下:

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 属性的值。

【讨论】:

  • 它不起作用,错误是:“在序列化类型对象时检测到循环引用”System.Data.Entity.DynamicProxies.SupPro_8C6D0751525397725CE757C5B55C4E144C5E94DAF9869481208CFF841D0F68CA
  • 然后你的查询中有一个循环引用(你有一个属性是类的集合)。修改它以返回只包含您需要返回的那些属性的匿名对象集合。你需要展示你的模特
  • 这是模型: public class SupPro { [Key] public int SupProID { get;放; } 公共 int 客户 ID { 获取;放; } 公共 int ProductID { 获取;放; } 公共 int CompanyID { 获取;放; } 公共日期时间 SupplyDate { 获取;放; } 公共虚拟产品 Product { get;放; } 公共虚拟供应商供应商 { 获取;放; } 公共虚拟客户客户 { 得到;放; } }
  • 编辑您的问题(不在 cmets 中)。您需要显示所有模型 - ProductSupplierCustomer - 其中一个对象包含一个属性,该属性是其他类之一 - 例如产品包含供应商和供应商包含产品集合
  • 我在我的主要问题中添加了它。
猜你喜欢
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2014-08-07
  • 2017-12-03
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多