Html.BeginForm и добавление свойств - PullRequest
137 голосов
/ 19 октября 2008

Как мне добавить enctype="multipart/form-data" в форму, сгенерированную с помощью <% Html.BeginForm(); %>?

Ответы [ 3 ]

245 голосов
/ 19 октября 2008

как часть атрибутов html, например

Html.BeginForm(
    action, controller, FormMethod.Post, new { enctype="multipart/form-data"})

Или вы можете передать null для действия и контроллера, чтобы получить ту же цель по умолчанию, что и для BeginForm () без каких-либо параметров:

Html.BeginForm(
    null, null, FormMethod.Post, new { enctype="multipart/form-data"})
19 голосов
/ 20 ноября 2008

Вы можете также использовать следующий синтаксис для строго типизированной версии:

<% using (Html.BeginForm<SomeController>(x=> x.SomeAction(), 
          FormMethod.Post, 
          new { enctype = "multipart/form-data" })) 
   { %>
12 голосов
/ 17 октября 2011

Я знаю, что это старое, но вы можете создать собственное расширение, если вам нужно было создавать эту форму снова и снова:

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()) { %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...