通过MVC上传时的空文件

时间:2010-06-15 19:37:27

标签: c# asp.net-mvc

我在.NET MVC View上有以下表格:

<form method="post" enctype="multipart/form-data" action="/Video/UploadDocument"> 
<input type="file" id="document1" name="document1"/> 
<input type="submit"  value="Save"/> 
</form> 

控制器具有以下被调用的签名:

public ActionResult UploadDocument(HttpPostedFileBase file) {
    return View();
}

当我在UploadDocument方法内部时,参数'file'为空。我在桌面上选择了一个有效的文档,并知道它包含文本。为了让这个文件上传工作,我错过了什么?

3 个答案:

答案 0 :(得分:2)

尝试使用

HttpPostedFileBase file = Request.Files["document1"];

绑定可能有问题([Bind()]属性)。

编辑:并制作该方法public ActionResult UploadDocument() {}

答案 1 :(得分:1)

这已得到回答,但我相信罪魁祸首是你的签名。而不是“文件”,请使用“ document1 ”。

public ActionResult UploadDocument(HttpPostedFileBase document1) 
{ 
    return View(); 
} 

请尝试让我知道你的结果

答案 2 :(得分:0)

当您创建参数(文件)的名称和输入元素的名称相等时会发生什么?我记得ASP.NET MVC中的默认模型绑定逻辑使用此约定。