以下を使用して、モバイルサイトに画像をアップロードするためのフォームを作成します。
@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data" }))
ただし、jQuery mobileを使用しているため、Ajaxを有効にして、ページ間の移行がスムーズに行えるようにしました。これにより、ajaxでファイルをアップロードできないため、フォームが画像をアップロードしないという問題が発生しました。ファイルのアップロードを許可するために、このフォームに属性data-ajax="false"
を追加する必要があります。
次のバリエーションを複数試しましたが、うまく機能しなかったため、これを行う方法を誰かが知っていますか?
@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data", "data-ajax" = "false" }))
コツは、ハイフンの代わりにアンダースコアを使用することです。
new { enctype = "multipart/form-data", data_ajax = "false" }
ハイフンは、c#識別子の一部として使用できません。 MVCフレームワークは、アンダースコアを自動的に変換します。
別のオーバーロードを使用できます。
@using (Html.BeginForm("Form", "Quote", FormMethod.Post, new Dictionary<string, object> { { "enctype", "multipart/form-data" }, { "data-ajax", "false"} }))