+1  A: 

You can instantiate the DAL instances in your controller actions. If you have really have a lot of actions, then you can think of creating the DAL instance in some better place that is shared among actions (like attributes)

You can persist in the the ASP.NET Session state, or create the database context again every time you need it (just make sure you close the datacontext each time again, best use the 'using' keyword on the datacontext)

chris166