Angularjs проблема с нулевым объектом для отправки mvc контроллера - PullRequest
0 голосов
/ 21 июня 2020

Я использую asp. net core 3.1 и angular js для разработки. Я пытаюсь отправить объект с контроллера js на mvc, но он всегда принимает пустой объект, с другой стороны, значения объекта появляются в console.log. Я не нашел, чем заняться, или в чем я ошибся. Что мне теперь делать? Заранее спасибо

Html код

<div class="row" ng-controller="EmployeeController as vm">
    <form method="post" class="form-horizontal" id="EmployeeSetupForm"
          name="EmployeeForm">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label class="bmd-label-floating">First Name</label>
                    <input type="text" class="form-control" required
                           ng-model="vm.eEmployee.FirstName" name="FirstName">
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label class="bmd-label-floating">Middle Name</label>
                    <input type="text" class="form-control" required
                           ng-model="vm.eEmployee.MiddleName" name="MiddleName">
                </div>
            </div>
        </div>
        <div>
            <div class="col-lg-3 float-left ">
            </div>
            <div class="col-lg-9 ">
                <button type="button" class="btn btn-info"
                        ng-click="vm.SaveEmployee()">
                    <i class="glyphicon glyphicon-save"> Save</i>
                </button>
            </div>
        </div>
    </form>
</div>

js код

введите описание изображения здесь

и mvc контроллер и класс модели

 [HttpPost]      
    public ActionResult SaveEmployee(Employee employee)
    {           
        var list = _empManager.Add(employee);
        return Json(new {data= list });
    }

Класс модели, созданный при первом подходе к базе данных

public partial class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
}

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Добавьте заголовки, как показано ниже

var post = $http({
                method: "POST",
                url: "/Employee/SaveEmployee",
                dataType: 'json',
                data: {'Id':1,'FirstName':'A','MiddleName':'B'},
                headers: { "Content-Type": "application/json" }
            });
0 голосов
/ 21 июня 2020

Я не смог найти, где ng-module определяется в html. Просто пример кода предоставит вам ниже

<html  ng-app="Employeemanagement">
<head>
  
</head>

<body  ng-controller="EmployeeController as vm">
  <label>Name :</label><input type="text" ng-model="ctrl.name" placeholder="Enter your name"/><br/><br/>  
 
    <span ng-bind="vm.message"></span> <span ng-bind="ctrl.name"></span><br/><br/>  
 
    <button ng-click="vm.changeMessage()"> Change Message </button>  
    <button ng-click="vm.resetMessage()"> Reset Message </button>  
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js">
    </script>  
    <script>

      angular.module('Employeemanagement', [])
      .controller('EmployeeController', ['$http',function($http) {
          var vm = this;
          vm.name='';
          vm.message= 'Hello';
          vm.changeMessage = function() {
              vm.message = 'Bye';
          };
          vm.resetMessage = function() {
              vm.message = 'Hello';
          };
      vm.SaveEmployee = function(){
      alert('test');
        //here call $http.post method
     };
      vm.SaveEmployee();
      }]);
  </script>

  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...