我如何添加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(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() { { "enctype", "multipart/form-data" } }); }
用法然后就变成了
<% using(Html.BeginMultipartForm()) { %>