Depending on what exactly you want to do, there are different places for these shared functions. For example, you may want to use an Action Filter and register it as a Global Action Filter for checking information about the logged-in user. Or, for reading the data from the database, you should create DAL (Data Access Layer) classes, and put them under a separate folder.
You can also create a base Controller and make the other Controllers inherit from it, or you can create a ControllerExtention class, if you want to share some code between your Controllers (an example would be the code to populate DropDownLists).
So, there's no single solution for what you want to do.
UPDATE:
Here is an example of a BaseController class:
public abstract class BaseController : Controller
{
protected virtual void PopulateDropDownValues()
{
// Code for populating DropDownLists that are shared by all Views...
// ViewBag.DropDownSelectList = selectList;
}
}
Then, all your Controllers or some of them can inherit form this base Controller:
public class HomeController : BaseController
{
}