这是我的 AngularJS 控制器代码,我从中向服务器发送 http post 请求:
function Search() {
Filtro = new Object();
Filtro.Usuario = $scope.UsuarioFilter;
Filtro.Nombre = $scope.NombreFilter;
Filtro.Rfid = $scope.RfidFilter;
Filtro.CurrentPage = $scope.currentPage;
GetUsuariosFilter(Filtro).then(function (response) {
$scope.Beneficiarios = response.data; //(IsNull(response.data) ? null : JSON.parse(response.data));
}, function (error) { alert(error.statusText); })
}
function GetUsuariosFilter(filtro) {
return appService.POST(JSON.stringify(filtro), "/Usuarios/GetUsuariosFilter");
}
这是我在 C# 控制器中的代码:
[HttpPost]
public ActionResult GetUsuariosFilter(FiltroUsuarios Filtro)
{
try
{
var response = _server.GetUsuarios();
if (response == null) throw new Exception("Error.");
return Json(response);
}
catch (Exception e)
{
return Json(new ResponseRequest() { Success = false, Message = e.Message, MessageDetail = (e.InnerException != null ? e.InnerException.Message : "") });
}
}
这是我在 services.js 中的代码:
this.POST = function (data, url) {
var deferred = $q.defer();
if (data == null || data == '' || data == undefined) data = '';
var promise = $http({
method: 'POST',
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: data
}).then(function (response) {
deferred.resolve(response);
}).catch(function (error) {
if (error.status == -1) {
alert('Se produjo un error al conectar con el servidor');
}
deferred.reject(error);
});
return deferred.promise;
}
在 AngularJS 中,过滤器没问题,但是当值进入控制器时,所有对象都是空的。
在 AngularJS 中,过滤器没问题,但是当值转到 控制器清空所有对象。
根据您共享的代码,模型绑定在这里似乎不正确。
FiltroUsuarios
类属性应与从 AngularJS 发送的属性的结构和名称相匹配。
正如我所见,您正在通过
application/json
但控制器与此不匹配。
因此您需要修复该问题才能正确处理模型绑定。
修改控制器:
[HttpPost]
public IActionResult GetUsuariosFilter([FromBody] FiltroUsuarios filtro)
{
//Rest of your code
}
修改角度请求:
this.POST = function (data, url) {
var deferred = $q.defer();
$http({
method: 'POST',
url: url,
headers: { 'Content-Type': 'application/json' },
data: JSON.stringify(data)
}).then(function (response) {
deferred.resolve(response);
}).catch(function (error) {
if (error.status == -1) {
alert('Se produjo un error al conectar con el servidor');
}
deferred.reject(error);
});
return deferred.promise;
}
注意:请参阅此官方文档以获取有关模型绑定的更多详细信息。