这是我在控制器中获取产品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; }
}
有人可以告诉我我的问题是什么,所以我可以根据需要查看查询结果。
感谢。
答案 0 :(得分:0)
您可以通过jQuery success
或done
来访问您的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对象中的正确字段。
但是,是的,你是对的,没有AngularJS,试图显示这样一个变量的内容只会返回毫无意义:
[object Object]