AngularJs $http.post() không gửi data về Controllers trong MVC

Thảo luận trong 'Lập Trình Website MVC5 & MVC6' bắt đầu bởi seolagi, 29/10/17.

  1. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,024
    Đã được thích:
    80
    Điểm thành tích:
    48
    Mình đang tập thành làm web Angular 1.1 trên visual studio 2017, mình có 1 textbox nhập dữ liệu vào, khi nhập xong click vào button sẽ hiển thị nội dung vừa nhập và thời gian xuống bên dưới, sử dụng angular để lấy và tải dữ liệu dạng ajax không load lại trang, nhưng khi mình lấy dữ liệu data vào controller thì data được truyền vào lại bằng null, bạn nào biết giúp mình với. Code mình ở dưới. Cảm ơn.
    AngularJs $http.post() không gửi data về Controllers trong MVC
    Mình có file .cshtml
    Mã:
    <div ng-app="MyAppAjax" ng-controller="Mycontroller">
        Name:
        <input type="text" ng-model="Name" />
        <br />
        <br />
        <input type="button" value="Submit" ng-click="ButtonClick()" />
        <div>Hello: {{person.Name}}</div>
        <div>Today: {{person.DateTime}}</div>
    </div>
    
    @section Scripts{
        <script type="text/javascript">
            angular.module("MyAppAjax", [])
                .controller("Mycontroller", function ($scope, $http, $window) {
                    $scope.ButtonClick = function () {
                        alert($scope.Name);
                        var post = $http({
                            method: "POST",
                            url: "/MyAngular/GetPeson",
                            dataType: 'json',
                            data: { name: $scope.Name },
                            headers: { "Content-Type": "application/json" },
                        }).then(function (response) {
                            $scope.person = response.data;
                        });
                    }
                });
        </script>
    }
    
    Có 1 action trong controller như sau
    Mã:
    [HttpPost]
    public JsonResult GetPeson(string name)
     {
          var person = new
          {
               Name= name,
               DateTime =DateTime.Now.ToString()
           };
           return Json(person);
    }
    
    Lúc lấy dữ liệu bằng data: { name: $scope.Name } dữ liệu bắt được tại GetPeson(string name) biến name lại = null, bạn nào giúp mình với, làm sao để lấy dữ liệu được từ data js vào trong controller vậy?
     
    Cảm ơn đã xem bài:

    AngularJs $http.post() không gửi data về Controllers trong MVC

  2. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,878
    Đã được thích:
    1,193
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Bạn đổi cái
    data: { name: $scope.Name },
    Thành
    params: { name: $scope.Name },
     
    seolagi thích bài này.
  3. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,024
    Đã được thích:
    80
    Điểm thành tích:
    48
    ủa kỳ ta, thấy trên web chỉ là data hehehe, mình đổi lại thành params được rồi, cảm ơn admin <3