Html.BeginForm并添加属性

我怎样才能将enctype="multipart/form-data"到使用<% Html.BeginForm(); %>生成的表单中<% Html.BeginForm(); %> <% 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"}) 

您也可以对强types版本使用以下语法:

 <% using (Html.BeginForm<SomeController>(x=> x.SomeAction(), FormMethod.Post, new { enctype = "multipart/form-data" })) { %> 

我知道这是旧的,但你可以创build一个自定义扩展,如果你需要反复创build该表单:

 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()) { %>