Как я могу добавить enctype="multipart/form-data" в форму, сгенерированную с помощью <% Html.BeginForm(); %>?
Html.BeginForm и добавление свойств
Ответ 1
Как часть 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"})
Ответ 2
Вы также можете использовать следующий синтаксис для строго типизированной версии:
<% using (Html.BeginForm<SomeController>(x=> x.SomeAction(), 
          FormMethod.Post, 
          new { enctype = "multipart/form-data" })) 
   { %>
Ответ 3
Я знаю, что это старо, но вы можете создать настраиваемое расширение, если вам нужно было снова и снова создавать эту форму:
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()) { %>
