【发布时间】:2016-01-09 19:01:29
【问题描述】:
我有一个 Angular/MVC 应用程序组合。用户进入可以修改记录,单击一个按钮调用一个服务,该服务执行一个帖子以更新数据库中的记录。它命中控制器(我在构造函数上有断点),但不是方法并返回 405。
按钮点击处理程序:
$scope.submit = function() {
console.log($scope.request);
requests.updateRequest($scope.request).then(onUpdate, onError);
}
请求资源:
var updateRequest = function (request) {
return $http.post("/api/request/update/", request).then(function (response) {
return response.data;
});
};
路由在单独的文件中配置:
config.Routes.MapHttpRoute("UpdateRequest", "api/request/update/", new { controller = "Requests", action = "UpdateRequest"});
RequestController 构造函数被命中,但我无法弄清楚为什么没有命中以下端点。
控制器方法:
[HttpPost]
public HttpResponseMessage UpdateRequest([FromBody] IRequest request)
{
try
{
var response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.OK,
Content =
new ObjectContent(
typeof(int),
request.Id,
new JsonMediaTypeFormatter())
};
return response;
}
catch (Exception ex)
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
}
有什么想法吗?
【问题讨论】:
-
我尝试了一些端点方法的变体。一个接受对象作为参数并尝试使用 httpput 的方法。笔记。资源服务确实有效,因为我有一个首先检索数据的 Get 方法。
标签: c# .net angularjs asp.net-web-api