Risposte:
Come parte di htmlAttributes, ad es
Html.BeginForm(
action, controller, FormMethod.Post, new { enctype="multipart/form-data"})
Oppure puoi passare nullall'azione e al controller per ottenere la stessa destinazione predefinita di BeginForm () senza parametri:
Html.BeginForm(
null, null, FormMethod.Post, new { enctype="multipart/form-data"})
È inoltre possibile utilizzare la sintassi seguente per la versione fortemente tipizzata:
<% using (Html.BeginForm<SomeController>(x=> x.SomeAction(),
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{ %>
So che questo è vecchio ma potresti creare un'estensione personalizzata se avessi bisogno di creare quel modulo più e più volte:
public static MvcForm BeginMultipartForm(this HtmlHelper htmlHelper)
{
return htmlHelper.BeginForm(null, null, FormMethod.Post,
new Dictionary<string, object>() { { "enctype", "multipart/form-data" } });
}
L'utilizzo quindi diventa
<% using(Html.BeginMultipartForm()) { %>