.NET控制器未命中-GET方法

时间:2019-12-06 18:05:37

标签: javascript c# angularjs asp.net-core

我正在尝试使用angular ng-repeat将JSON请求的结果放入表中,但是什么也没发生。控制台未显示任何错误,.NET Controller中的断点未命中。

App Controller代码:

var app = angular.module('angularTable', []);

app.controller('listdata', function ($scope, $http) {

    $scope.contacts = []; 
    $http({ method: 'GET', url: '/Contacts/GetContacts/' }).success(function (response) {
        $scope.contacts = response; 
    });

});

.NET控制器

[HttpGet]
    public JsonResult GetContacts()
    {
        var data = db.Contacts.Include(x => x.Cities).Include(a => a.Groups);

        return Json(data);
    }

HTML:

<div ng-app ="angularTable">
 <table class="table table-hover" ng-controller="listdata">
        <thead>
            <tr>

                <th>Name</th>
                <th>Phone</a></th>
                <th>Group</th>
                <th>City</th>
                <th>Actions</th>
            </tr>

        </thead>
        <tbody>
            <tr ng-repeat="item in contacts">
                <td>{{item.name}}</td>
                <td>{{item.area}} {{item.phone}}</td>
                <td>{{item.group.description}}</td>
                <td>{{item.city.name}}</td>
                <td>
                    <a asp-route-id="{{item.id_Contact}}">Send Message | </a>
                    <a asp-route-id="{{item.id_Contact}}">Edit | </a>
                    <a asp-route-id="{{item.id_Contact}}" asp-action="Delete">Delete</a>
                </td>
            </tr>

        </tbody>
    </table>
  </div>

将此CDN用于AngularJS:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>

1 个答案:

答案 0 :(得分:1)

首先,如@ThiagoCustodio所述,请在浏览器中输入网址,并检查是否可以获得预期的json结果。

第二,您可以尝试修改如下代码,以允许来自客户端的HTTP GET请求。

public JsonResult GetContacts()
{
    var data = db.Contacts.Include(x => x.Cities).Include(a => a.Groups);


    return Json(data, JsonRequestBehavior.AllowGet);
}

此外,如果AngularJS客户端作为单独的应用程序运行,请检查是否在后端(服务)应用程序中针对特定来源启用/配置了CORS。