我在控制器中有两个动作。一个显示文件上载表单,另一个显示上载结果。 我创建了一个名为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; }
}
当我提交表单时,“上载”操作会创建并填充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");
}
}
答案 0 :(得分:0)
如果您需要更长时间的后续请求,则必须将其放在Session
或持久存储(例如数据库)中。