无法获得webapi结果

时间:2016-12-07 08:32:42

标签: c# asp.net-web-api url-routing

我不知道如何在浏览器中看到get api结果。我尝试使用此Url(http://localhost:8269/api/getproducts)获取响应,但收到错误:

<Error>
   <Message>
      No HTTP resource was found that matches the request 
      URI 'http://localhost:8269/api/getProducts'.
   </Message>
   <MessageDetail>
      No type was found that matches the controller named 'getProducts'.
   </MessageDetail>
</Error>
public class ProductsController : ApiController
{
    Product[] products = new Product[]
    {
        new Product { ProductId=1,ProductName="samsung",ProductCategory="mobile",ProductPrice=7889 },
        new Product { ProductId=1,ProductName="nokia",ProductCategory="mobile",ProductPrice=7844 },
        new Product { ProductId=1,ProductName="lg",ProductCategory="mobile",ProductPrice=7887 },
        new Product { ProductId=1,ProductName="xiomi",ProductCategory="mobile",ProductPrice=7856 },
        new Product { ProductId=1,ProductName="htc",ProductCategory="mobile",ProductPrice=7833 }
    };

    public IEnumerable getProducts()
    {
        return products;
    }
}

1 个答案:

答案 0 :(得分:3)

您的uri应该是'http://localhost:8269/api/Products' (默认路由是......)

当您使用Web API 2时,您的示例应该可以正常使用上面的URL。 使用Web API 1时,您的方法应该只调用Get()或使用[HttpGet]属性修饰。

[HttpGet]
public IEnumerable getProducts()
{
    return products;
}

我建议你仔细阅读asp.net web apithis answer的基础知识。