c# - 如何将文件添加到列表中。但列表总是被重置
问题描述
我想将传入的图像保留在列表中,因为它们是用 Filepond 视觉加载的。我稍后会通过电子邮件发送给他们。但每次调用文件加载它都会再次创建列表。列表总是被重置。
public class HomeController : Controller
{
List<HttpPostedFileBase> img = new List<HttpPostedFileBase>();
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Fileupload()
{
try
{
if (Request.Files.Count > 0)
{
HttpPostedFileBase file = Request.Files[0];
if (file != null && file.ContentLength > 0)
{
img.Add(file);
return Json(true);
}
}
return Json(false);
}
catch
{ return Json(false); }
}
解决方案
这样做是因为对于您在服务器上收到的每个 HTTP 请求,如果有对应的控制器,Asp.net 框架就会为您创建一个控制器实例。
如果您想将它们保存在此控制器的内存中,您可以将列表声明为静态。
private static List<HttpPostedFileBase> img = new List<HttpPostedFileBase>();
推荐阅读
- java - 助记符适用于 MenuBar 但不适用于 MenuItems
- linux - 将 ZFS 快照应用到非 ZFS FS
- proxy - Kubernetes 和 Prometheus 不与 Grafana 一起工作
- java - 如何通过拖动鼠标/手指来移动身体/演员?
- android - 按值的日期属性对 Hashmap 键进行排序
- python - IndexError: 元组索引超出范围 --- Python
- vb.net - 根据数据集值在 windows 窗体上创建阈值
- html - Bootstrap 4 Grid - 行的长度不同
- python - 运行 def __init__(self) 函数后,如何在类对象中添加数据?
- java - 删除多对一关系中删除父级的子级