0

現在、複数のファイル入力を含むフォームがあります。

Resume: <input type="file" id="resume" name ="files" /><br />
Cover Letter: <input type="file" id="coverLetter" name ="files" /><br />

そして私のバックエンドで:

[HttpPost]
public ActionResult Apply(ApplyModel form, List<HttpPostedFileBase> files) 
{
    if (!ModelState.IsValid)
    {
        return View(form);
    }
    else if (files.All( x => x == null))
    {
       ModelState.AddModelError("Files", "Missing Files");
       return View(form);
    }
    else
    {
        foreach (var file in files)
        {
            if (file.ContentLength > 0)
             {
                var fileName = Path.GetFileName(file.FileName);
                var path = Path.Combine(Server.MapPath("~/uploads"), fileName);
                file.SaveAs(path);
                <!--- HERE -->
            }
        }
    }
}

私の質問は、コメントされた HERE の場所で、ファイルが ID 履歴書またはカバーレターからのものであるかどうかをどのように判断するかです。

4

1 に答える 1

3

あなたはそれを識別できません。別の名前を使用する必要があります。

Resume: <input type="file" id="resume" name="coverLetter" /><br />
Cover Letter: <input type="file" id="coverLetter" name="resume" /><br />

その後:

[HttpPost]
public ActionResult Apply(ApplyModel form, HttpPostedFileBase coverLetter, HttpPostedFileBase resume)
{
    ... now you know how to identify the cover letter and the resume
}

多くのアクション パラメータを回避するには、ビュー モデルを使用します。

public class ApplicationViewModel
{
    public ApplyModel Form { get; set; }
    public HttpPostedFileBase CoverLetter { get; set; }
    public HttpPostedFileBase Resume { get; set; }
}

その後:

[HttpPost]
public ActionResult Apply(ApplicationViewModel model)
{
    ... now you know how to identify the cover letter and the resume
}
于 2012-08-22T21:10:05.197 に答える