File upload 图像上传MVC5

File upload 图像上传MVC5,file-upload,asp.net-mvc-5,File Upload,Asp.net Mvc 5,我需要上传一个图像并保存到一个文件中,但我不能在控制器中捕获它,因为它总是空的 在视图中: @使用(Html.BeginForm(“创建”、“产品”、FormMethod.Post、新的{enctype=“multipart/formdata”})) { .... 控制器: [HttpPost] [接受动词(HttpVerbs.Post)] [ValidateAntiForgeryToken] public ActionResult Create([Bind(包括=“ProductID,fks

我需要上传一个图像并保存到一个文件中,但我不能在控制器中捕获它,因为它总是空的

在视图中:

@使用(Html.BeginForm(“创建”、“产品”、FormMethod.Post、新的{enctype=“multipart/formdata”}))
{
....
控制器:

[HttpPost]
[接受动词(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(包括=“ProductID,fksubcategory id,productName,ProductArName,productEndDescription,ProductArDescription,ProductImage”)]产品,HttpPostedFileBase文件)
{ 
if(ModelState.IsValid)
{
product.FKBrandID=1;
db.Products.Add(产品);
db.SaveChanges();
返回操作(“索引”);
}
返回视图(产品);
}
我已经试过了:

  • 使用HttpPostedFileBase而不是HttpPostedFile
  • Request.Files[“file”]
    null
  • 输入和ActionResult中的参数名称相同
  • enctype=“多部分/表单数据”,data\u ajax=“false”
  • 添加
    [AcceptVerbs(HttpVerbs.Post)]

这让我抓狂,请给我一些建议?

问题是,您为
enctype
属性提供的值无效

仔细看看。在关闭双引号之前,您有一个空格

new { enctype = "multipart/form-data "}
它应该是
new{enctype=“multipart/form data”}

下面的代码应该可以正常工作

@using(Html.BeginForm("Create", "Products", FormMethod.Post,
                                                 new { enctype = "multipart/form-data"}))
{  
   <input type="file" name="file" id="file"/>
   <input type="submit"/>

}
@使用(Html.BeginForm(“创建”、“产品”、FormMethod.Post、,
新的{enctype=“multipart/form data”})
{  
}

你是如何提交的(标准提交还是ajax)?使用标准提交什么是
数据\u ajax=“false”
?哪一个建议使用ajax?-如果你有
@usng(Html.BeginForm(…,new{enctype=“multipart/form data”}))
它应该可以很好用。我试过了,有没有数据\u ajax=“false”以防万一..我有(Html.BeginForm(“Create”、“Products”、FormMethod.Post、new{enctype=“multipart/form data”})仍然没有文件使用
name=“file”
查看时是否有任何其他输入?