複数のファイルをアップロードして、ビューで繰り返し処理しようとしています。ただし、X 個のファイルをアップロードするのではなく、最初のファイル X を何度もアップロードします (たとえば、3 つのファイルをアップロードした場合は 3 回)。宛先フォルダーには、単一のファイルのみが保存されます。
存在するファイルの数を認識しているように見えるのに、なぜそれらを繰り返し処理しないのですか?
私はasp.net/c#にかなり慣れていない(classic/vbに慣れている)ので、明らかな何かが欠けている場合は申し訳ありません...
コード:
public class ViewDataUploadFilesResult
{
    public string Name { get; set; }
    public int Length { get; set; }
}
public ActionResult UploadMultipleFiles()
{
    var r = new List<ViewDataUploadFilesResult>();
    foreach (string file in Request.Files)
    {
        HttpPostedFileBase hpf = Request.Files[file];//as HttpPostedFileBase;
        if (hpf.ContentLength == 0)
            continue;
        string basepath = Server.MapPath("/Images");
        string savedFileName = Path.Combine(basepath, Path.GetFileName(hpf.FileName));
        hpf.SaveAs(savedFileName);
        r.Add(new ViewDataUploadFilesResult()
        {
            Name = savedFileName,
            Length = hpf.ContentLength
        });
    }          
    return View(r);
}
結果の例:
    <li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
    <li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
    <li>Uploaded: C:\Users...sonatrach.jpg totalling 3581 bytes.</li>
私はここで Scott Hanselman の投稿に取り組んでいます: