HttpPostedFileBase のデフォルトのバインダーを使用して、モデルとファイルのアップロードをバインドするフォームがあります。
これは、Html.BeginForm() を使用する場合にうまく機能します。ただし、AJAX を使用して同じアクションを実行したかったので、これを Ajax.BeginForm() に置き換え、それに応じてパラメーターを変更しました。
モデルは引き続き正しくバインドされますが、ファイルのアップロードを HttpPostedFileBase にバインドできません。
これにより、モデルとファイルのアップロードがバインドされます。
<% using (Html.BeginForm("MapUpdateColumns", "RepositoryAdmin", FormMethod.Post, new { id = "UpdateDataset", enctype = "multipart/form-data" })) {%>
これはモデルのみをバインドします:
<% using (Ajax.BeginForm("MapUpdateColumns", "RepositoryAdmin", new AjaxOptions { UpdateTargetId = "columnMappings" }, new { id = "UpdateDataset", enctype = "multipart/form-data" })) {%>
コントローラーのアクション:
public ActionResult MapUpdateColumns(DatasetViewModel model, HttpPostedFileBase sourceFile)
これは可能である必要がありますか?もしそうなら、私は何が間違っていますか? ありがとう。