1

新しい 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>
4

1 に答える 1

0

モバイルではありませんが、同様の問題がありました。

交換

public ActionResult Upload(HttpPostedFileBase file)

public ActionResult Upload(IEnumerable<HttpPostedFileBase> files)

その後、コレクションからファイルにアクセスできます

于 2012-08-01T14:46:25.987 に答える