Q:

WebForms project calls to a WebApi 2 project

So, i have several projects in my solution, one Web API 2, one Web Forms project.  Is it possible to get the Web Forms project to make calls into the Web API Controllers? 
I'd like to have the Web API do all the lifting from the Database, so that it can be called either from the Web or a mobile device. 
Is this possible? 

A:

There are several options to solve this:

Move the logic from the Web API project to another project, e.g. a class library.  The Controllers and all the Web API specific parts remain in the Web API project.  Use the library in all the projects that need the functionality (Web API in the controllers, WebForms, ...).  You'd need to make sure that the other projects provide a valid environment to the functionality (e.g. in terms of authentication and authorization you should not have the WebForms project return different data than the Web API for the same user).  
Make HTTP requests to the Web API from the WebForms project. 
You could also add a project reference from the WebForms project to the Web API project as the Web API project also results in a .NET assembly that you can reference.  

I'd favor the 1st approach as this saves you a HTTP request and is a very direct way of sharing functionality.  I'd not go for option #3 without moving the functionality from the controllers to other classes because then the WebForms project would have to mimic a valid WebAPI environment for the controllers to work properly.