Use of Ninject and an injectable DataLayer in MVC3
One tip I would give is to use the "Ninject for ASP NET MVC 3" NuGet package. Install that package into your project. After doing this, you should find a file named "NinjectMVC3.cs" located in the "App_Start" folder. In this file, look for a method named RegisterServices():

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind&lt;IDataLayer&gt;().To&lt;MockDataLayer&gt;().InRequestScope();
}        


This sets up a MockDataLayer to be returned for each separate web request. This ensures that MockDataLayer is disposed when the web request is completed. Now, when you want to create an instance of the data layer, use MVC's built-in DependencyResolver class:

var dataContext = DependencyResolver.Current.GetService&lt;IDataLayer&gt;();