所以我的视图有大约6个文件上传控件。注意,视图有其他控件都很好。提交后,我需要创建一个文件夹并将提交的文件保存到该文件夹中,然后将实体保存到数据库中。
问题:将保存的文件路径映射到模型的相应属性的最佳方法是什么?我可以使用开关盒做到这一点,但我不喜欢他们这样做的方式。请注意,并非所有文件都是强制性的?
示例代码:
int index = 0;
foreach (var file in files)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(dpath, fileName);
file.SaveAs(Server.MapPath(path));
switch (index)
{
case 0:
t.file1 = path;
break;
case 1:
t.file2 = path;
break;
case 2:
t.file3 = path;
break;
case 3:
t.file4 = path;
break;
case 4:
t.file5 = path;
break;
case 5:
t.file6 = path;
break;
}
}
index++;
}
任何建议都表示赞赏。
答案 0 :(得分:0)
这不是最好的方法,视图页面中 fileUpload
控件的顺序取决于 t.file
(模型)。这只是另一种选择:
public virtual ActionResult UploaderAction(SomeViewModel t, HttpPostedFileBase [] uploadedFile)
{
for(int i = 0; i < uploadedFile.length; i++)
{
if (uploadedFile[i] != null && uploadedFile[i].ContentLength > 0)
{
var fileName = Path.GetFileName(uploadedFile[i].FileName);
var path = Path.Combine(dpath, fileName);
uploadedFile[i].SaveAs(Server.MapPath(path));
t.file[i] = path;
}
}
}