0

I just added an empty Web API 2 controller to my MVC 5 Project. I am trying to call the WebAPI via the following from a Web browser's address bar:

http://localhost:25488/api/devices/

or

http://localhost:25488/api/devices/GetLastConditionForAll

However, I am receiving an 404, not found, and it is not hitting my breakpoint in my controller.

Adding the Web API 2 controller created an WebApiConfig.cs as follows:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

It also modified my Application_Start() to this:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        GlobalConfiguration.Configure(WebApiConfig.Register);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}

Here is my WebAPI 2 Controller:

public class DevicesController : ApiController
{

    public IHttpActionResult GetLastConditionForAll()
    {
        IEnumerable<X_Cas_Condition> conditionEntries;

        try
        {
            //conditionEntries = DbContext.Database.SqlQuery<X_Cas_Condition>(cmdToGetLastStatus);
            conditionEntries = new List<X_Cas_Condition>();
            return Ok(conditionEntries);
        }
        catch
        {
            conditionEntries = new List<X_Cas_Condition>();
            return NotFound();
        }
    }
}
ekad
  • 14,436
  • 26
  • 44
  • 46
blgrnboy
  • 4,877
  • 10
  • 43
  • 94
  • 2
    Found my answer right after I posted, which is here: http://stackoverflow.com/questions/22401403/404-error-after-adding-web-api-to-an-existing-mvc-web-application – blgrnboy Nov 10 '15 at 20:41

1 Answers1

1

In your Application_Start():

GlobalConfiguration.Configure(WebApiConfig.Register); // first.
RouteConfig.RegisterRoutes(RouteTable.Routes); // second.
SharpC
  • 6,974
  • 4
  • 45
  • 40
Alex Kvitchastyi
  • 250
  • 2
  • 11