2

1 つのフォーム内にテキスト入力フィールドと複数のファイル アップロードがあります。ファイルの数やその他のフィールドは実行時までわかりません。

<form action="/WorkOrder/Install" enctype="multipart/form-data" method="post">    
        <div class="display-label">
            Description
        </div>

        <input id="description" name="description" type="text" value="" />

        <div class="display-label">
            Photo - Before Install 
        </div>

        <input name="files" id="file1" type="file" />

        <div class="display-label">
            Photo - After Install 
        </div>

        <input name="files" id="file2" type="file" />

        <input type="submit"/>
</form>

FormCollection は設定されていますが、HttpPostedFileBase コレクションは常に null です。Request.Files は空です。

    [HttpPost]
    public ActionResult Install(FormCollection formCollection, IEnumerable<HttpPostedFileBase> files)
    {
        return View();
    }

ファイル入力を1つだけにして、コントローラーを変更して単一のHttpPostedFileBaseを受け入れるようにしましたが、問題は同じです。

4

1 に答える 1

2

jQuery Mobile がフォーム送信を処理しようとしていました。MVC コントローラーがファイルのアップロードを処理できるようにするには、フォームに data-ajax="false" を設定する必要がありました。

于 2012-12-17T19:10:24.053 に答える