文件上传不起作用,但没有丢失任何错误

文件上传不起作用,但没有丢失任何错误

问题描述:

我想上传允许文件上传在我的MVC应用程序,但是当我测试它的页面只是刷新,不显示任何错误,并没有上传文件,所以我对于什么是错误的完全疏忽。文件上传不起作用,但没有丢失任何错误

查看:

<form action="" method="post" enctype="multipart/form-data"> 

    <label for="file">Filenname:</label> 
    <input type="file" name="file" id="file" /> 
    <input type="submit" /> 
</form> 

控制器:

[HttpPost] 
    public ActionResult Index(HttpPostedFileBase file) 
    { 
     if (file.ContentLength > 0) 
     { 
      var filename = Path.GetFileName(file.FileName); 
      var path = Path.Combine(Server.MapPath("~/"), filename); 
      file.SaveAs(path); 
     } 

     return RedirectToAction("Index"); 
    } 
+1

你的表单动作是空白 – Jasen

+0

@Jasen我下面http://haacked.com/archive/2010/07/16/uploading-files- with-aspnetmvc.aspx /表单动作应该是什么?通常是“”的动作意味着张贴到同一页面,应该由索引ActionResult – Matthew

+1

Jasen抓取是正确的。你需要指定行动的动向 - 与BeginForm –

尝试:

<form action="Controller/Index" method="post" enctype="multipart/form-data"> 

    <label for="file">Filenname:</label> 
    <input type="file" name="file" id="file" /> 
    <input type="submit" /> 
</form> 
+0

这与控制器一起工作,因此'action =“Index” – Matthew

还没有真正尝试过,但我的猜测是,那是因为你没有使用Html.BeginForm和你正在使用简单<form>。 试试这个:

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