ASP.NET MVC - 在请求之间传递数据的方法

时间:2016-02-13 20:35:38

标签: asp.net-mvc

我有两种方法的控制器。第一种方法应该设置变量并做一些事情。第二种方法(由ajax调用)应该获得此变量的值。所以,我不能使用TempData和Cache(因为有2个不同的请求)。怎么解决?使用Session?但是在asp.net mvc中默认禁用会话,如果我启用它,我害怕整个应用程序出现意外行为......全局变量也不被批准(因为我需要获取变量的值)用户)

编辑: 工作流程是:

  1. 客户端jquery脚本调用上传方法控制器并传递一个巨大的文件。该方法执行很长时间(即1分钟,无论如何)。此方法生成文件的唯一名称并将记录添加到DB(使用此唯一名称)
  2. 用户可以取消上传,然后点击“取消”。它调用另一个服务器方法(即名为Cancel),它应该从DB中删除记录(通过Upload方法添加)并删除上传的文件(或上传的文件的一部分)。
  3. 因此,在Cancel方法中,我需要知道正在上传的文件的唯一名称。我必须在任何存储(即Redis,DB等)中将此名称存储在Upload方法中,并在上传成功后从该存储中删除(或者在Cancel方法中,如果调用了Cancel)

1 个答案:

答案 0 :(得分:2)

如果数据不敏感,我建议将该值保存在该用户的cookie中。

如果数据敏感,则需要存储,例如存储在服务器的缓存中。在那里,您保留每个用户的记录,然后重复使用并在完成处理后将其丢弃。当您拥有一个网站实例时,这种方法很有效。如果不这样做,你应该看一下例如redis缓存,sql server,azure table storage,......