Asp.net mvc BeginForm html helper不';无法使用文件上载
我有一个强类型视图、一个模型和一个简单的post方法 模型有一个属性:Asp.net mvc BeginForm html helper不';无法使用文件上载,asp.net-mvc,file-upload,Asp.net Mvc,File Upload,我有一个强类型视图、一个模型和一个简单的post方法 模型有一个属性: public HttpPostedFileBase File { get; set; } 视图如下所示: <form method="post" enctype="multipart/form-data"> <input type="submit" name="Put" value="Excel" /> </form> 我刚才展示的效果很好。但当我将显式表单声明更改为以
public HttpPostedFileBase File { get; set; }
视图如下所示:
<form method="post" enctype="multipart/form-data">
<input type="submit" name="Put" value="Excel" />
</form>
我刚才展示的效果很好。但当我将显式表单声明更改为以下代码时:
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method, MVC.SomeController.Name))
那么action方法不会将文件绑定到模型
有人知道原因吗?因为您没有在表单中添加
enctype
属性:
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method,
MVC.SomeController.Name,
FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
...
}
使用
Html.BeginForm
时,它会忽略enctype
属性,对于文件附件,该属性必须是multipart/form data
使用允许设置如下属性的BeginForm
重载:
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method, MVC.SomeController.Name, FormMethod.Post, new { enctype = "multipart/form-data" }))
@using (Html.BeginForm(MVC.SomeController.Actions.ActionNames.Method, MVC.SomeController.Name, FormMethod.Post, new { enctype = "multipart/form-data" }))