【问题标题】:$http.get() response 500 angularjs and mvc$http.get() 响应 500 angularjs 和 mvc
【发布时间】:2016-05-09 06:23:05
【问题描述】:

我已经在 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(数据)

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

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

【问题讨论】:

  • 首先,您应该调试并在您的 C# 代码中找到引发异常的行。
  • 该异常被抛出- return Json(result, JsonRequestBehavior.AllowGet);结果是保存正确的对象数据
  • 在你的方法中放一个断点,你将能够看到详细的错误信息/异常细节。
  • 我为将数据返回到 angular 做了一个控制台日志。它提到 - 序列化类型的对象时检测到循环引用
  • PropertyQueryRepository 类中GetAll() 函数的返回类型是什么?

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


【解决方案1】:

您的案例中的结果似乎格式不正确。我用下面的示例结果集尝试了你的代码并且它有效。

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

    }

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2013-10-09
    • 2017-09-20
    • 2018-11-02
    • 2019-01-20
    相关资源
    最近更新 更多