Я бы использовал System.Web.Mvc.FilePathResult по следующим строкам:
// most controller logic ommitted
public ActionResult DownloadFile(int fileID)
{
// in this example fileID would map to a file location in the database
var item = _repository.GetByKey(fileID);
// item.DocType would equal "application/msword" / "image/jpeg" etc, etc;
return File(item.DocumentLocation, item.DocType);
}
[edit] - упс, только что понял, что это будет работать только на том же сервере / домене, но оставил для справки