【问题标题】:Unable to get webapi results无法获取 webapi 结果
【发布时间】:2016-12-07 08:32:41
【问题描述】:

我不知道如何在浏览器中查看 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;
    }
}

【问题讨论】:

  • 是的,我试过了,出现错误(“ObjectContent`1”类型无法序列化内容类型“application/xml;charset=utf-8”的响应正文。)
  • 请编辑您的ajax方法,您必须在ajax请求中设置ContentType:application/xml
  • 如何设置以及在哪里编写代码。我没有ajax请求。我只是在 url 中点击。

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


【解决方案1】:

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

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

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

我建议您更深入地了解asp.net web apithis answer 的基础知识。

【讨论】:

猜你喜欢
  • 2020-10-12
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2013-12-07
  • 2020-04-17
  • 2021-05-15
相关资源
最近更新 更多