Angularjs 在控制器ASP API中添加新方法后使用方法失败
首先,我在控制器api中有一个向数据库添加记录的方法。以下是我的方法:Angularjs 在控制器ASP API中添加新方法后使用方法失败,angularjs,asp.net-web-api,Angularjs,Asp.net Web Api,首先,我在控制器api中有一个向数据库添加记录的方法。以下是我的方法: [HttpPost] public Response<UserView> AddUser(UserView user) { EntityFirstApp.User mappedUser = Mapper.Map <EntityFirstApp.User>(user); var entityUser = this._userService.Add
[HttpPost]
public Response<UserView> AddUser(UserView user)
{
EntityFirstApp.User mappedUser = Mapper.Map <EntityFirstApp.User>(user);
var entityUser = this._userService.AddUser(mappedUser);
UserView userView = Mapper.Map<UserView>(entityUser);
//// build response
var response = new Response<UserView> { Model = userView };
response.Messages.Add(new Message
{
MessageType = MessageType.Success,
Value = "Success"
});
return response;
}
我还是不明白为什么。任何帮助都将不胜感激。谢谢。是“return userService;”导致了这个问题吗?在
DeleteUser
方法中使用DELETE
HTTP动词不是更好吗?它听起来更安静一些?另外,如果您从400错误请求状态代码(可以在浏览器开发人员控制台的“网络”选项卡中看到)中显示服务器的确切响应,也会有所帮助。在我研究了一段时间后,问题是关于API的路由配置。默认映射器类似于'routeTemplate:'api/{controller}/{id}',所以这就是我不能在1controller类中使用2 post方法的方式。因此改为“routeTemplate:”api/{controller}/{action}/{id}“。
[HttpPost]
public Response<UserView> DeleteUser(Int64 Id)
{
var entityUser = this._userService.GetUserById(Id);
this._userService.DeleteUser(Id);
UserView userView = Mapper.Map<UserView>(entityUser);
//// build response
var response = new Response<UserView> { Model = userView };
response.Messages.Add(new Message
{
MessageType = MessageType.Success,
Value = "Success"
});
return response;
}
userModule.service('userService', userService);
userService.$inject = ['$http', '$q', 'commonEnum'];
function userService($http, $q, commonEnum) {
var userService = {
getAllUser: getAllUser,
addUser: addUser,
deleteUser : deleteUser
}
return userService;
function getAllUser() {
var deferred = $q.defer();
$http({
method: commonEnum.ajaxMethod.get,
url: commonEnum.baseApiUrl.base + commonEnum.webApiUrl.getAllUser,
})
.success(onSuccess)
.error(onError);
function onSuccess(data) {
deferred.resolve(data);
}
function onError() {
deferred.reject();
}
return deferred.promise;
}
function addUser(user) {
var deferred = $q.defer();
$http({
method: commonEnum.ajaxMethod.post,
url: commonEnum.baseApiUrl.base + commonEnum.webApiUrl.addUser,
data: user
})
.success(onSuccess)
.error(onError);
function onSuccess(data) {
deferred.resolve(data);
}
function onError() {
deferred.reject();
}
return deferred.promise;
}
function deleteUser(userId) {
var parameters = {
Id: userId
}
var deferred = $q.defer();
$http({
method: commonEnum.ajaxMethod.post,
url: commonEnum.baseApiUrl.base + commonEnum.webApiUrl.deleteUser,
params: parameters
})
.success(onSuccess)
.error(onError);
function onSuccess(data) {
deferred.resolve(data);
}
function onError() {
deferred.reject();
}
return deferred.promise;
}
}