0
このような疑問が多く、StackOverflowの他のすべてのケースを検索して、なぜこれが当てはまり、どれも適用されなかった理由を調べました。私が見ることができるものはこれまでのところ正しいものです。ファイル入力タグの私の名前は、コントローラ内のcreateメソッドの変数名とまったく同じです。私はフォームにenctypeを追加しました。以下を参照してください:HttpPostedFileBaseは毎回ヌルです
HTML:
@using (Html.BeginForm(new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<p><input type="file" name="file" id="file" /></p>
<p><input type="submit" value="Update" class="btn btn-default" /></p>
</div>
}
をコントローラー:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(HttpPostedFileBase file) // This is where it's NULL
{
if (ModelState.IsValid)
{
IO io = new IO();
if (file != null)
{
UpdateLog updateLog = io.updateIt(file);
db.UpdateLogs.Add(updateLog);
db.SaveChanges();
} else
{
return RedirectToAction("Create");
}
return RedirectToAction("Index");
}
return View();
}