【发布时间】:2010-09-18 00:17:48
【问题描述】:
如何将enctype="multipart/form-data" 添加到使用<% Html.BeginForm(); %> 生成的表单中?
【问题讨论】:
标签: asp.net-mvc
如何将enctype="multipart/form-data" 添加到使用<% Html.BeginForm(); %> 生成的表单中?
【问题讨论】:
标签: asp.net-mvc
作为 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()) { %>
【讨论】: