新しい MVC 4 ベータ版リリースをいじっています。モバイル アプリケーション テンプレートを使用して新しい Web プロジェクトを作成しました。ファイルをアップロードするためにコントローラーとビューを追加しただけですが、アクションの結果ではファイルは常に null です。これはバグですか、それとも何か間違っていますか? コントローラーコード:
using System.IO;
using System.Web;
using System.Web.Mvc;
namespace MobileWebExample.Controllers
{
public class FileUploadController : Controller
{
public ActionResult Index()
{
return View();
}
[AllowAnonymous]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload(HttpPostedFileBase file)
{
int i = Request.Files.Count;
if (file != null)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
}
return RedirectToAction("Index");
}
}
}
ビューは次のようになります。
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<form action="@Url.Action("Upload")" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" value="Submit" />
</form>