我有一个强类型视图,一个模型和一个简单的post方法。
模型有一个属性:
public HttpPostedFileBase File { get; set; }
查看内容如下:
<form method="post" enctype="multipart/form-data">
<input type="submit" name="Put" value="Excel" />
</form>
行动是
[HttpPost]
public virtual ActionResult Method(ModelVM model)
{
...
}
我刚刚展示的作品。但是当我将显式表单声明更改为以下代码时:
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method, MVC.SomeController.Name))
然后action方法不会将文件绑定到模型。
有人知道为什么吗?
答案 0 :(得分:1)
因为您尚未在表单中添加enctype
属性:
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method,
MVC.SomeController.Name,
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
...
}
答案 1 :(得分:1)
当您使用Html.BeginForm
时,它会忽略文件附件必须为enctype
的{{1}}属性。
使用允许设置如下属性的multipart/form-data
重载:
BeginForm