回答:
htmlAttributesなどの一部として
Html.BeginForm(
action, controller, FormMethod.Post, new { enctype="multipart/form-data"})
またはnull
、アクションとコントローラに渡して、パラメータなしでBeginForm()と同じデフォルトのターゲットを取得できます。
Html.BeginForm(
null, null, FormMethod.Post, new { enctype="multipart/form-data"})
厳密に型指定されたバージョンでは、次の構文を使用することもできます。
<% using (Html.BeginForm<SomeController>(x=> x.SomeAction(),
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{ %>
私はこれが古いことを知っていますが、そのフォームを何度も作成する必要がある場合は、カスタム拡張を作成できます。
public static MvcForm BeginMultipartForm(this HtmlHelper htmlHelper)
{
return htmlHelper.BeginForm(null, null, FormMethod.Post,
new Dictionary<string, object>() { { "enctype", "multipart/form-data" } });
}
次に、使用法は
<% using(Html.BeginMultipartForm()) { %>