使用ajax导航属性null

时间:2015-05-25 21:39:00

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

当我执行Ajax get请求时,服务器始终为navigation属性返回null。

我的导航属性是element.Escuderia。

我的代码:

$.ajax({
        type: "GET",
        url: "/GestionPilotosEscuderia/GetPiloto",
    }).done(function (data) {
        $(data).each(function (index, element) {
            console.log(element) //here element.Escuderia gives null
        });
    }).error(function (ex) {
        alert("Error");
    });
//Controller
public JsonResult GetPiloto()
        {
            db.Configuration.ProxyCreationEnabled = false;
            return Json(db.Piloto.ToList(), JsonRequestBehavior.AllowGet);
        }

public partial class Piloto
    {
        public Piloto()
        {
            this.PilotoCarrera = new HashSet<PilotoCarrera>();
        }

        public int id { get; set; }
        public int? id_escuderia { get; set; }
        public string nombre { get; set; }
        public string apellidos { get; set; }

        public virtual Escuderia Escuderia { get; set; }

    }

4 个答案:

答案 0 :(得分:0)

我相信对于导航属性,您需要包含它们。

return Json(db.Piloto**.Include("Escuderia").**ToList(), JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

如果我访问导航属性(&#34; Escuderia&#34;),如果db.piloto.tolist()将在视图中转转,那给我一个循环引用错误,但如果我得到ajax则无法访问属性导航

答案 2 :(得分:0)

问题解决了 去掉: db.Configuration.ProxyCreationEnabled = false;

答案 3 :(得分:0)

你可以尝试这个javascript代码:

$.ajax({
  method: "GET",
  url: "/GestionPilotosEscuderia/GetPiloto",
  contentType: "application/json; charset=utf-8",
  success: function(data){
     //you can use $.each to loop on the data.
     console.log(data)
  },
  error: function(error){
     alert(error);
  }
});