无法查看我使用json返回的查询结果

时间:2015-06-22 10:18:30

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

这是我在控制器中获取产品ID并使用json返回supllier的方法:

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);
            }

屏幕上的输出是:data res:[object Object] dragon 4

这些是我的模型类:

客户模式:

 public class Customer

{
    [Key]
    public int CustomerID { get; set; }
    public String NameS { get; set; }
    public String NameP { get; set; }
    public String Name { get; set; }
    public String Phone { get; set; }
    public String Address { get; set; }
    public String Email { get; set; }

    public virtual ICollection<SupPro> SupPro { get; set; }
}

供应商类:

   public class Supplier
        {
            [Key]
            public int CompanyID { get; set; }
            public String NameS { get; set; }
            public String Address { get; set; }
            public String Phone { get; set; }

            public virtual ICollection<SupPro> SupPro { get; set; }
        }

产品类:

public class Products
    {
        [Key]
        public int ProductID { get; set; }
        public String NameP { get; set; }
        public decimal Price { get; set; }
        public int Quantity { get; set; }

        public virtual ICollection<SupPro> SupPro { get; set; }
    }

和supPro类:

public class 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; }

        public virtual Products Product { get; set; }
        public virtual Supplier Supplier { get; set; }
        public virtual Customer Customer { get; set; }
    }

有人可以告诉我我的问题是什么,所以我可以根据需要查看查询结果。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以通过jQuery successdone来访问您的json,如下所示:

foo是一个集合,因此可以通过索引或循环访问它,然后是属性名称。

作为获取第一个CompanyName属性的示例。

data.foo[0].CompanyName

更常见的是,您将使用循环通过jQuery输出这些,您可以使用$.each并将它们附加到元素。

您定义的其他元素可通过以下方式访问:

data.ball
data.elementId

<强>更新

 success: function (data) {
                            var x = data;

                            $.each(data.foo, function (i, item) {
                               $nextElm.append(item.CompanyName + '<br/>');
                            });

                         }

显然将附加值更改为您想要的输出。

答案 1 :(得分:0)

我不确定这是否有帮助,但是如果你有一个包含JSON类或数组的JavaScript变量,并且如果你使用的是AngularJS,那么以可读的形式显示值非常容易:

<pre> {{ myArrayOfObjects | json }} </pre>

我经常使用这个技巧,特别是在编写AngularJS代码时,测试我的控件是否绑定到JSON对象中的正确字段。

enter image description here

但是,是的,你是对的,没有AngularJS,试图显示这样一个变量的内容只会返回毫无意义:

[object Object]