Как мне добавить enctype="multipart/form-data"
в форму, созданную с помощью <% Html.BeginForm(); %>
?
Ответы:
Как часть 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()) { %>