无法将Class对象传递给Web API

时间:2015-05-23 05:04:21

标签: asp.net-web-api

我是Web API的新手,无法使用URL分别调用以下所有函数,想知道我如何确保每次正确的函数将使用相应的输入参数调用,现在它抛出我的错误就像。

  

  找到了与请求匹配的多个操作:System.Collections.Generic.IEnumerable`1 [ProductsApp.Models.Product]类型ProductsApp.Controllers.ProductsController上的GetAllProducts()类型ProductsApp上的System.Web.Http.IHttpActionResult GetProduct123(TestParam)。 Controllers.ProductsController      System.InvalidOperationException

 public class ProductsController : ApiController
{
    Product[] products = new Product[] 
    { 
        new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
        new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
        new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
    };

    public IEnumerable<Product> GetAllProducts()
    {
        return products;
    }

[HttpGet]
   public IHttpActionResult GetProduct(FromUri]TestParam t1)
    {
        var product = products.FirstOrDefault((p) => p.Id == t1.id);
        if (product == null)
        {
            return NotFound();
        }
        return Ok(product);
    }




    [HttpGet]
    public IHttpActionResult GetProduct123([FromUri]TestParam t2)
    {
        var product = products.FirstOrDefault((p) => p.Id == t2.id2);
        if (product == null)
        {
            return NotFound();
        }
        return Ok(product);
    }

    public class TestParam
    {
        public int id { get; set; }
        public int id2 { get; set; }

    }
}

0 个答案:

没有答案