1

ASP.NET MVC 4 を使用してファイル アップロード機能を作成する際に、アクションで POST されたファイルが null になるという問題が発生しました。

Razor (動作中のファイル変数が null になります)

@using (Html.BeginForm("Upload", "Trip", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" id="file" />
    <button type="submit">Upload</button>

    @Html.ValidationSummary(true);
}

かみそり(うまく機能します)

@using (Html.BeginForm("Upload", "Trip", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="file" id="file" />
    <input type="submit" value="upload" />

    @Html.ValidationSummary(true);
}

アクション

public ActionResult Upload(HttpPostedFileBase file)
{
         //The action executes but file is null when using <button>
}

Phill Haack によるよく引用される記事を読みましたが、私たちの実装の唯一の違いは、私が使用する<input type="submit" />where 要素を使用すること<button type="submit">です。私の理解では、これらの HTML 要素は両方とも同じ方法で投稿されます。<button>ボタンに CSS スタイルを適用するために を使用しています。

<input>ファイルは問題なく投稿されますが、<button>実装では投稿されない理由はありますか?

4

0 に答える 0