c# - 在控制器动作之间传递数据
问题描述
嗨,我找不到在一个控制器内的 Action 方法之间传递数据的方法。简化的代码示例如下:
public class HomeController : Controller
{
int latestID;
// GET: Home
public ActionResult Index()
{
latestID = 50000;
return View();
}
// GET: Generate
public ActionResult Generate()
{
// using the latestID here
return View();
}
}
索引在应用程序启动时加载并latestID
设置为 50000。但是当我单击映射到 API GET 请求生成的按钮时,latestID
它突然为空。我试图实现 TempData 和 Session 但没有运气。任何帮助将不胜感激!
解决方案
我觉得这里有 2 种可能性,即要检索的值是针对使用该网站的所有用户的用户会话或其全局值。
如果该值是特定于用户的,则可以通过 Viewbag 等会话阶段管理对其进行管理。或者,如果该值预计仅在服务器端维护,则需要通过一些持久性机制(如数据库或内存缓存)再次检索它。
如果该值在使用网站的所有用户中是通用的,则可以通过单例对象的依赖注入来实现(这可以是数据库管理器或缓存管理器,也可以是简单的内存对象)。也可以使用静态对象,但它并不理想,因为应用程序不支持跨实例的水平可伸缩性。
推荐阅读
- javascript - 如何在 vuejs 中的页面加载时启动 Bootstrap 模式?
- spring - 在 swagger-ui.js 实现中添加 info 对象
- openshift - Minishift 列出所有目录项
- arrays - 传递数组元素的地址不工作 - C - 我做的方式
- sql - 内部 SELECT 语句是否可以被 JOIN 语句替换?
- ios - 快速检查是否包含视频内容的 zip 文件
- user-controls - UC 是我的 GoTo,还是有更好的方法?
- sql-server - 在 Microsoft SSMS 中导入 XLXS
- r - 将带有变量分隔符的字符串转换为数据帧 R
- html - 将光标添加到结束 HTML 标记快捷方式