【问题标题】:How to fetch data in ASP.Net MVC using AngularJS?如何使用 AngularJS 在 ASP.Net MVC 中获取数据?
【发布时间】:2016-10-04 10:45:38
【问题描述】:

开发人员和工程师您好,我正在尝试使用 AngularJS 和 Datatables 以表格格式从数据库中获取数据,但是当我运行应用程序时,我看不到任何数据,我不知道出了什么问题?

这是我的应用模块:

var app = angular.module('MyApp', ['datatables']); app.controller('homeCtrl', ['$scope', '$http', 'DTOptionsBuilder', 'DTColumnBuilder',
function ($scope, $http, DTOptionsBuilder, DTColumnBuilder) {
    $scope.dtColumns = [
        DTColumnBuilder.newColumn("CustomerID", "Customer ID"),
        DTColumnBuilder.newColumn("CompanyName", "Company Name"),
        DTColumnBuilder.newColumn("ContactName", "Contact Name"),
        DTColumnBuilder.newColumn("ContactTitle", "Contact Title"),
        DTColumnBuilder.newColumn("Address", "Address"),
        DTColumnBuilder.newColumn("City", "City")
    ]

    $scope.dtOptions = DTOptionsBuilder.newOptions().withOption('ajax', {
        url: "/home/getdata",
        type: "POST"
    })
    .withPaginationType('full_numbers')
    .withDisplayLength(10);
}]);

MVC 控制器:

 public class HomeController : Controller
{

    public ActionResult Index()
    {
        return View();
    }
    // Fetching Data from Customer Table
    public ActionResult getData()
    {
        using (MyDatabaseEntities dc = new MyDatabaseEntities())
        {
            return Json(dc.Customers.ToList());
        }
    }


}

控制器的视图和JS顺序:

【问题讨论】:

    标签: angularjs json asp.net-mvc entity-framework datatables


    【解决方案1】:

    但是,我会以不同的方式重新设计您的解决方案,但您缺少 JsonRequestBehavior.AllowGet 作为返回 Json 中的第二个参数。

    return Json(dc.Customers.ToList(), JsonRequestBehavior.AllowGet);
    

    你在HttpGet方法中调用拒绝Json请求的方法签名需要它,如果你反编译System.Web.Mvc.Controller你会发现它。

    get 最初被拒绝以避免使用 Json 进行特定攻击,这称为 JSON 劫持,Pill 在他的博客 Json Hijacking 中有更多描述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 2016-11-27
      • 2016-12-02
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      相关资源
      最近更新 更多