我在控制器中有两个动作。一个显示文件上传表单,另一个显示上传结果。我创建了一个名为 FileInfo 的 POCO,即
public class FileInfo
{
public string Name { get; set; }
public int Length { get; set; }
public string FileType { get; set; }
public string ErrorMessage { get; set; }
}
当我提交表单时,Upload 操作会创建并填充 FileInfo 对象,然后重定向到名为 results 的第二个操作。我希望能够在结果操作中使用相同的文件信息对象。
我可以使用 TemPData[] 解决这个问题,但它是有限的,因为它只保存单个请求的对象数据。我认为必须有更好的方法在控制器操作之间共享对象。感谢任何帮助!
// 上传动作
List<FileInfo> fileInfo= new List<FileInfo>();
//populate the fileInfo object using fi.Add()
if ((status.ToString() == "OK"))
{
TempData["Info"] = fileInfo;
return RedirectToAction("Results");
}
else
{
return RedirectToAction("Index");
}
//结果动作。
public ActionResult Results()
{
List<FileInfo> fi = TempData["Info"] as List<FileInfo>;
if (fi != null)
{
return View(fi);
}
else
{
return View("Index");
}
}