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

本文关键字:angularjs mvc 响应 http get | 更新日期: 2023-09-27 18:32:49

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

首页应用.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)
    })
});

首页控制器.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(内部服务器错误)

控制台.log(数据)

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

我到处找,但找不到如何解决这个问题。谁能帮忙?

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

在您的情况下,结果似乎格式不正确。我用下面的示例结果集尝试了您的代码,它起作用了。

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

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