No HTTP resource was found that matches the request URI in MVC 4 Web API

Today i have faced a very stupid problem, i was working something in ASP.NET MVC 4 Web API...First of all i created a new ASP.NET MVC 4 Project and select WEB API. Now as you can see there are two controllers has been generated by default in controller folder "HomeController" and "ValuesController", i created a model class and and write code in valuescontroller and access like this.

http://localhost:49012/api/values

That works perfect.

Now i created 1 more model class:
Product:

  public int Id { get; set; }
        public string Name { get; set; }
        public string Category { get; set; }
        public decimal Price { get; set; }


Now i  need to add a new controller, so as usual i added new controller class in controller folder name is "ProductController" and write this code.

 public class ProductController: Controller
    {
        //
        // GET: /Default1/

        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;
        }

    }

Now from my side everything is fine, so i try to access my web api like this.

http://localhost:49012/api/product

This given me this error message:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
      <Error><Message>No HTTP resource was found that matches the request URI 'http://localhost:49012/api/product'.</Message><MessageDetail>No type was found that matches the controller named 'yogesh'.</MessageDetail></Error>

Now i searched on Google but did't get any solution, so suddenly i have seen default controller.


public class ProductController: Controller

Now i realized my controller class is inhering controller but default controller is inheriting ApiController like this under namespace of 

using System.Web.Http;


public class ProductController: ApiController

That resolved my problem.


Ebook Download
View all
Learn
View all