Angularjs MVC-请求的资源不支持http方法';邮政';

Angularjs MVC-请求的资源不支持http方法';邮政';,angularjs,asp.net-mvc,http-post,Angularjs,Asp.net Mvc,Http Post,我已经阅读了关于这条消息的各种帖子 请求的资源不支持http方法“POST” 我已确保已包含Http属性。我尝试了System.Web.HttpPost和System.Web.Mvc.HttpPost 我还包括了[FromBody]标记 我有一个angularjs页面试图发布到MVC方法 [System.Web.Mvc.HttpPost] private async void Post([FromBody] UserEntry userEntry) { if (userEntry.

我已经阅读了关于这条消息的各种帖子

请求的资源不支持http方法“POST”

我已确保已包含
Http
属性。我尝试了
System.Web.HttpPost
System.Web.Mvc.HttpPost

我还包括了
[FromBody]
标记

我有一个angularjs页面试图发布到MVC方法

[System.Web.Mvc.HttpPost]
private async void Post([FromBody] UserEntry userEntry)
{   
    if (userEntry.UserEntryID > 0)
    {
        // update
        var dbUserEntry = this.db.UserEntries
                .Where(u => u.UserEntryID == userEntry.UserEntryID)
                .FirstOrDefault();

        dbUserEntry.TeamName = userEntry.TeamName;            
    }
    else { 
        // insert
        this.db.UserEntries.Add(userEntry);
    }

    await this.db.SaveChangesAsync();
}
这是我的angularjs电话

$http({
    url: '/api/entry',
    method: 'POST',
    headers: {
        'Content-Type': 'application/json', /*or whatever type is relevant */
        'Accept': 'application/json' /* ditto */
    },
    data: {
        'data': $scope.userEntry
    }
}).success(function (data, status, headers, config) {
    $scope.Message = "Saved successfully";
    $scope.working = false;
}).error(function (data, status, headers, config) {
    $scope.title = "Oops... something went wrong";
    $scope.working = false;
});
这是我的MVC方法

[System.Web.Mvc.HttpPost]
private async void Post([FromBody] UserEntry userEntry)
{   
    if (userEntry.UserEntryID > 0)
    {
        // update
        var dbUserEntry = this.db.UserEntries
                .Where(u => u.UserEntryID == userEntry.UserEntryID)
                .FirstOrDefault();

        dbUserEntry.TeamName = userEntry.TeamName;            
    }
    else { 
        // insert
        this.db.UserEntries.Add(userEntry);
    }

    await this.db.SaveChangesAsync();
}

无论我怎么尝试,我都无法访问我的Post方法并不断得到上面提到的相同错误。

@David这里似乎有点混乱,因为您使用了
/api/
,这是web api的默认路径,但您提到您正在使用mvc
如果您的控制器是从
ApiController
继承的,那么它就是web api。在这种情况下,
System.Web.Http.Post
属性将起作用。

尽管您必须公开该方法,以使其在任何情况下都能像@smoksnes所提到的那样工作。

@David这里似乎有一点混乱,因为您使用了
/api/
,这是web api的默认路径,但您提到您正在使用mvc
如果您的控制器是从
ApiController
继承的,那么它就是web api。在这种情况下,
System.Web.Http.Post
属性将起作用。
尽管您必须公开该方法,以使其在任何情况下都能像@smoksnes提到的那样工作。

您的方法是私有的。 把它公之于众
,它应该会工作得更好

作为补充说明,您可能需要重新考虑将async与void一起使用

与异步void方法相比,更喜欢异步任务方法

您的方法是私有的。 把它公之于众,它应该会工作得更好

作为补充说明,您可能需要重新考虑将async与void一起使用

与异步void方法相比,更喜欢异步任务方法


根据问题,他使用的是mvc,而不是wep api。根据问题,他使用的是mvc,而不是wep api。请从脚本块中删除
头文件
,然后重试。从脚本块中删除
头文件
,然后重试。。