$http.post 请求在控制器中找不到方法

$http.post request can't find method in controller

我的 Controller:

中有一个 AddCategory() 方法
[RoutePrefix("api")]
    public class CategoryController : ApiController
    {
            ....
      [Route("addCategory")]
      [HttpPost]
      public void AddCategory(string category)
      {
        var getCat = category;
      }

在我的 Home.html 我有按钮 保存新类别 我写了 $http.post 方法它:

 var testString = "TEST String";
            var req = {
                method: 'POST',
                url: '/api/addCategory',
                data: testString,

            };
            $http(req).then(function successCallback(response) {
                console.log("Success");
                }, function errorCallback(response) {
                    console.log("Eror");
                });

但是我有下一个错误:

angular.js:11442 POST http://localhost:6059/api/addCategory 404 (Not Found)

网络 书签 开发控制台 我发现了错误:

可能很重要,但我在 WebApiConfig.cs:

中禁用了 XML
var json = GlobalConfiguration.Configuration.Formatters;
        json.JsonFormatter.UseDataContractJsonSerializer = true;
        json.Remove(json.XmlFormatter);

可能有人知道我该如何更改它?感谢您的回答!

问题与您调用的服务有关,404表示未找到:

404 http error

因此服务 URL 或您的本地服务器中的某些内容无法正常工作。

您的方法 Post 需要 return IHttpActionResult。或者您的请求 http 总是 return 代码 404。

试试这个:

[RoutePrefix("api")]
    public class CategoryController : ApiController
    {
            ....
      [Route("addCategory")]
      [HttpPost]
      public IHttpActionResult AddCategory(string category)
      {
        var getCat = category;
        if(getCat != null)
          return Ok();

        return NotFound();
      }

我建议您使用 Api Rest in C# with $resource angular。在我看来,这是最好的模式。