Angular应用post到MVC webapi后端返回405

本文关键字:后端 返回 webapi MVC 应用 post Angular | 更新日期: 2023-09-27 18:17:11

我有一个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);
        }   
    }

任何想法?

Angular应用post到MVC webapi后端返回405

默认参数绑定不适用于接口。试着改变:

[FromBody] IRequest request

转换为具体类型,例如

请求请求

如果你想在你的webapi中使用一个接口,请查看这篇博客文章