在Controller Actions之间传递数据

时间:2018-04-26 07:55:34

标签: c# asp.net-mvc

您好我找不到在一个控制器内的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但没有运气。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我觉得这里有两种可能性,即要检索的值是针对用户会话或其使用网站的所有用户的全局。

如果该值是特定于用户的,则可以通过会话阶段管理(如Viewbag)进行管理。或者,如果预期此值仅在服务器端维护,则需要通过某些持久性机制(如数据库或内存缓存)再次检索该值。

如果该值在使用本网站的所有用户中是通用的,则可以通过单独对象的依赖注入来实现(这可以是数据库管理器或缓存管理器,也可以是简单的内存对象)。静态对象也可以使用,但它不是理想的,因为应用程序不支持跨实例的水平可伸缩性。