【发布时间】:2015-07-31 05:18:57
【问题描述】:
我在使用 foreach 循环遍历 Request.Files 时将项目添加到列表时遇到问题。似乎只添加列表中的最后一个对象?即使我的数据库正在保存所有文件的条目,并且各个文件也正在保存。
这是我发布到的控制器代码(来自 dropzone.js):
public ActionResult SaveDropzoneJsUploadedFiles()
{
List<FileObject> files = new List<FileObject>();
foreach (string fileName in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileName];
// custom file object
var uploadFile = new FileObject();
// files come through, i get the name
uploadFile.Name = file.FileName;
// add to list (only adds last object?)
files.Add(uploadFile);
// files save
file.SaveAs(uploadFile.Path);
// db context saves
db.Files.Add(uploadFile);
db.SaveChanges();
}
}
fileObject类如下:
public class FileObject
{
public string Name { get; set; }
public string Description { get; set; }
public string Path { get; set; }
public string Type { get; set; }
public int Size { get; set; }
public string Hash { get; set; }
}
【问题讨论】:
-
你可以尝试在 Foreach 循环之外初始化“httpPostedFilebase”
-
请发布 FileObject 类的定义,特别是如果您要覆盖
GetHashCode方法。
标签: c# asp.net-mvc dropzone.js