使用MVC

时间:2015-09-19 20:58:33

标签: c# .net asp.net-mvc

我正在尝试在我的网络应用程序上上传多个文件。因此我使用IEnumerable<HttpPostedFileBase>类在每个文件中循环。但我收到一个错误陈述 -

  

错误System.Collections.Generic.IEnumerable<System.Web.HttpPostedFileBase>不包含'ContentLength'的定义,并且没有扩展方法'ContentLength'接受类型为System.Collections.Generic.IEnumerable<System.Web.HttpPostedFileBase的第一个参数'(您是否缺少using指令或程序集)引用?)

此错误适用于HttpPostedFileBase类中的所有属性。我正在尝试编辑该类,但它不允许。我尝试在我的ViewModel中创建一个IEnumerable的HttpPostedFileBase类,但它再次失败。我在这里错过了什么?

更新 - 代码: 图

<div class="col-sm-8">                                  
 <input type="file" name="Files" id="file1" class="form-control" />
  <input type="file" name="Files" id="file2" class="form-control" />
  <input type="submit" value="Save" class="btn btn-default" name="Command"/>   
</div>

控制器

public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> Files)
{
     foreach (var item in Files)
     { 
           if (Files != null && Files.ContentLength > 0)
           {
                FileUpload up = new FileUpload();
                up.PersonId = model.PersonId;
                up.FileName = System.IO.Path.GetFileName(Files.FileName);
                up.MimeType = Files.ContentType;
                up.FileContent = Files.Content;
                bll.AddFileUpload(up);
            }
     }
     return View();
}

1 个答案:

答案 0 :(得分:1)

您的代码尝试访问集合本身,但您需要访问集合项,如下所示:

foreach (var item in Files)
{

FileUpload up = new FileUpload();
up.PersonId = model.PersonId;
up.FileName = System.IO.Path.GetFileName(item.FileName);
up.MimeType = Files.ContentType;
up.FileContent = item.Content;
bll.AddFileUpload(up);
}