【发布时间】:2018-06-22 10:00:53
【问题描述】:
我正在将数据从 angularjs 发布到 .net 核心控制器,但我得到的是空值
学生控制器
[HttpPost]
public JsonResult AddStudent(Student stu)
{
if (stu != null)
{
db.Students.Add(stu);
db.SaveChanges();
return Json(stu);
}
else
{
return Json("Some Error Occured");
}
}
模块.js
var myApp = angular.module('myApp', []);
Service.js
myApp.service("myService", function ($http) {
//get All Eployee
// Add Employee
this.AddEmp = function (Employee) {
var response = $http({
method: 'post',
url: 'Employee/AddStudent/',
data: JSON.stringify(Employee),
dataType: 'json'
});
console.log(JSON.stringify(Employee));
return response;
}
});
Controller.js
myApp.controller("myCntrl", function ($scope, myService) {
$scope.divEmployee = false;
GetAllEmployee();
//To Get All Records
function GetAllEmployee() {
var getData = myService.getEmployees();
getData.then(function (emp) {
$scope.employees = emp.data;
}, function () {
alert('Error in getting records');
});
}
$scope.AddUpdateEmployee = function () {
var Employee = {
Name: $scope.employeeName,
Email: $scope.employeeAddress,
Age: $scope.employeeEmail
};
console.log(Employee);
var getAction = $scope.Action;
if (getAction == "Update") {
Employee.Id = $scope.employeeId;
var getData = myService.updateEmp(Employee);
getData.then(function (msg) {
GetAllEmployee();
$scope.divEmployee = false;
}, function () {
alert('Error in updating record');
});
} else {
var getData = myService.AddEmp(Employee);
getData.then(function (msg) {
GetAllEmployee();
alert(msg.data);
$scope.divEmployee = false;
}, function () {
alert('Error in adding record');
});
}
}
$scope.AddEmployeeDiv = function () {
ClearFields();
$scope.Action = "Add";
$scope.divEmployee = true;
}
//$scope.deleteEmployee = function (employee) {
// var getData = myService.DeleteEmp(employee.Id);
// getData.then(function (msg) {
// GetAllEmployee();
// alert('Employee Deleted');
// }, function () {
// alert('Error in Deleting Record');
// });
//}
function ClearFields() {
$scope.employeeId = "";
$scope.employeeName = "";
$scope.employeeEmail = "";
$scope.employeeAdress = "";
}
});
索引.cshtml
<div ng-controller="myCntrl">
<h1> Employee Details Page</h1>
<br />
<input type="button" class="btnAdd" value=" Add Employee" ng-click="AddEmployeeDiv()" />
<div class="divList">
<p class="divHead">Employee List</p>
<table cellpadding="12" class="table table-bordered table-hover">
<tr>
<td><b>ID</b></td>
<td><b>Name</b></td>
<td><b>Email</b></td>
<td><b>Age</b></td>
<td><b>Actions</b></td>
</tr>
<tr ng-repeat="employee in employees">
<td>
{{employee.id}}
</td>
<td>
{{employee.StudentName}}
</td>
<td>
{{employee.StudnetAddress}}
</td>
<td>
{{employee.StudentEmail}}
</td>
<td>
<span ng-click="editEmployee(employee)" class="btnAdd">Edit</span>
<span ng-click="deleteEmployee(employee)" class="btnRed">Delete</span>
</td>
</tr>
</table>
</div>
<div ng-show="divEmployee">
<p class="divHead">{{Action}} Employee</p>
<table>
<tr>
<td><b>Id</b></td>
<td>
<input type="text" disabled="disabled" ng-model="employeeId" />
</td>
</tr>
<tr>
<td><b>Name</b></td>
<td>
<input type="text" ng-model="employeeName" />
</td>
</tr>
<tr>
<td><b>Email</b></td>
<td>
<input type="text" ng-model="employeeAddress" />
</td>
</tr>
<tr>
<td><b>Age</b></td>
<td>
<input type="text" ng-model="employeeEmail" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" class="btnAdd" value="Save" ng-click="AddUpdateEmployee()" />
</td>
</tr>
</table>
</div>
</div>
@*New record Modal addition..*@
@section scripts{
<script src="~/lib/angular/Module.js"></script>
<script src="~/lib/angular/Service.js"></script>
<script src="~/lib/angular/Controller.js"></script>
}
我只是想让你检查我的 POST 功能,我试图检查 console.log 以及它工作正常我正在获取数据但是当我检查 asp.net 核心时我没有获取数据。
【问题讨论】:
-
在将其发布到服务之前,您是否在 Angular 服务中进行了调试,如果值存在?
-
是的值存在,但只是没有传入 asp 代码
-
将查看调试传入请求以查看是否尝试将传入 JSON 映射到 Student 对象(服务器端)。可以通过在点击按钮时查看 chrome 网络选项卡来确保网络数据看起来正确,单击帖子的新行,可以在右侧面板中看到数据的详细信息。
标签: .net angularjs asp.net-mvc