如何在重新启动站点时强制更新数据

时间:2015-07-16 17:06:49

标签: c# asp.net-mvc asp.net-mvc-4

在Global.asax.cs中,我有一个5辆汽车列表(模型,Cars.cs,从数据库中提取数据):

public class MvcApplication : System.Web.HttpApplication
{
    public static List<Car> Cars = Enumerable.Range(1,5)
        .Select(i => new Car(i))
        .ToList();

    protected void Application_Start()...
}

然后我使用首页上的列表:

@foreach(var C in MySite.MvcApplication.Cars)
{
    <a href="/Car_@C.Number">@C.Name</a>
}

我无法弄清楚如何强制Cars变量刷新。我发现最快的方法是登录服务器,打开IIS,停止并启动网站 - 只需重新启动它就行不通了。显然这是不可持续的,我相信有更好的方法......

以下是我尝试过的其他一些事情:

  • 创建一个停止网站的脚本,等待5秒钟,然后重新启动它。这执行了停止和启动,但数据没有改变。
  • 创建SQL依赖项。这不起作用,因为我使用dsn连接数据库(没办法)。

我需要一种自动化方法,因此用户可以更新信息并刷新数据,而无需每次更改内容时都登录服务器。

1 个答案:

答案 0 :(得分:1)

将分配分解为方法,并在应用程序启动时根据需要在“刷新”页面上调用该方法一次。如果您需要开始走这条路线,这将为您提供良好的DI。

public static List<Car> Cars;

public static void GetCars()
{
    Cars = Enumerable.Range(1,5)
    .Select(i => new Car(i))
    .ToList();
}

protected void Application_Start()
{
    GetCars();
}

然后调用Global.GetCars()以响应您网页上的用户界面事件。