Saya mendidik diri sendiri di angular js. Untuk ini saya telah membuat proyek yang dimodelkan setelah proyek aktual dalam pekerjaan saya

Semua operasi berfungsi dengan baik tetapi POST memberi saya masalah

Pengontrol saya.js

var ngapp = angular.module('ngWebApp', ['angularUtils.directives.dirPagination']);
ngapp.controller('ngIndexController', function ($scope, ngDashboardService) {
 $scope.exportData = function (selectedDataList) {

    var getData = ngDashboardService.AddReportAudit(selectedDataList)
    getData.then(function (result) {
            alert(result.data);
        }, function () {
            alert('Error in getting records');
        });        
    };
});

Layanan saya.js

angular.module('ngWebApp').service("ngDashboardService", function ($http) {
    this.AddReportAudit = function (dataList) {
        var response = $http({
            method: "POST",
            url: "/Home/AddReportAudit",
            data: {
            'dataList': JSON.stringify(dataList)
            }
        });
        return response;
    };
});

Kode JasonResult saya di HomeController

 public JsonResult AddReportAudit(List<ADTOWebSMARTT_SSOData> dataList)
 {
    if (dataList != null)
    {
        using (HRMSystemEntities contextObj = new HRMSystemEntities())
        {
            var itemList = dataList.Where(x => x.IsChecked == true).ToList();
            itemList.ForEach(a => a.DateChecked = DateTime.Now);
            contextObj.SaveChanges();
            return Json(new { success = true });
        }
    }
    else
    {
        return Json(new { success = false });
    }
}

Masalahnya terjadi di sini publik JsonResult AddReportAudit(List dataList) Untuk beberapa alasan dataList saat mencapai AddReportAudit menjadi kosong yaitu daftar memiliki elemen nol. dataList memiliki 30 record di controller.js dan service.js.

Saya tidak yakin mengapa itu terjadi. apakah ada penguraian yang saya lewatkan ketika data json berasal dari sudut ke c #

0
DotNetBeginner 17 Maret 2017, 18:01

2 jawaban

Jawaban Terbaik

Anda sebenarnya mengirim Objek, jadi data yang mencapai JsonResult AddReportAudit(....isAnObject) publik Anda, tetapi Anda mengharapkannya berupa daftar. Cukup ubah kode pengontrol Anda ke cuplikan di bawah ini, itu akan berfungsi.

angular.module('ngWebApp').service("ngDashboardService", 
    function($http) {
       this.AddReportAudit = function (dataList) {
          var response = $http({
             method: "POST",
             url: "/Home/AddReportAudit",
             data:JSON.stringify(dataList)
          });
       return response;
    };
});
2
Pramod_Para 17 Maret 2017, 15:22

Solusi untuk sudut 1. Tempatkan url layanan web Anda dan ubah format data json sesuai kebutuhan Anda. Berhasil.

<!DOCTYPE html>
<html>
<head>
    <title>Angular HTTP service</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
    <table>
        <tr>
            <th>S No</th>
            <th>Source Name</th>
        </tr>
        <tr ng-repeat="res in result">
            <td>{{$index + 1}}</td>
            <td>{{res.source_name}}</td>
        </tr>


    </table>
    <script type="text/javascript">
        var app = angular.module("myApp", []);
        app.controller("myCtrl", function($scope, $http){
            $http.get("http://127.0.0.1:4000/all_source").then(function(res){
                //console.log(res.data.result);
                //console.log(res);
                $scope.result = res.data.result;
            });
        });
    </script>
</body>
</html>

enter image description here

0
ochs.tobi 7 Agustus 2018, 06:35