$ http.get()响应500 angularjs和mvc

时间:2016-01-31 21:29:55

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

我在asp.net MVC中设置了一个EF模型,我使用angularjs中的$ http.get()来检索数据。呈现页面时,我得到500(内部服务器错误)

homeApp.js文件

var homeApp = angular.module('homeApp', []);
homeApp.controller('propertyController', function ($http) {

var vm = this;

    $http.get("/Home/GetAllProperties")
    .success(function (result) {
        vm.Properties = result;
    }).error(function (data) {
        console.log(data)
    })

});

HomeController.cs

public class HomeController : Controller
{
    private IPropertyQueryRepository propertyRepo;


    public HomeController()
    {
       this.propertyRepo = new 
        PropertyQueryRepository(new KEstatesEntities1());
    }

    public ActionResult Property()
    {   
        return View();
    }

    public JsonResult GetAllProperties()
    {
        var result = propertyRepo.GetAll();

        return Json(result, JsonRequestBehavior.AllowGet);
    }
}

错误消息

无法加载资源:http://localhost:59338/Home/GetAllProperties 服务器响应状态为500(内部服务器错误)

的console.log(数据)

对象引用未设置为对象的实例。

我到处看,但无法找到解决方法。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

似乎您的案例中的结果未正确形成。我用下面的示例结果集尝试了你的代码并且它工作正常。

 public JsonResult GetAllProperties()
    {
        List<Temp> obj = new List<Temp>();
        obj.Add(new Temp("A",1));
        obj.Add(new Temp("B",2));
        obj.Add(new Temp("C",3));

        return Json(obj, JsonRequestBehavior.AllowGet);
    }
    public class Temp
    {
        public string name { get; set; }
        public int empid { get; set; }

        public Temp(string n, int id)
        {
            name = n;
            empid = id;
        }

    }

尝试将结果集更改为某些静态数据,并检查是否仍然出现相同的错误。