Foreach a petición.Files

Estoy intentando cargar varios archivos en ASP.NET MVC y tengo este simple bucle foreach en mi controlador

foreach (HttpPostedFileBase f in Request.Files)
{
    if (f.ContentLength > 0)
        FileUpload(f);
}

El código anterior genera este error:

Unable to cast object of type 'System.String' to type 'System.Web.HttpPostedFile'. 

Lo que no entiendo es por qué Request.Files [1] devuelve un HttpPostedFileBase pero cuando se repite, devuelve cadenas (probablemente los nombres de los archivos).

Nota: Sé que esto se puede resolver con un bucle for. También, intenté usar HttpPostedFile, con el mismo error.

Respuestas a la pregunta(7)

Su respuesta a la pregunta