我正在尝试在我的网络应用程序上上传多个文件。因此我使用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();
}
答案 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);
}