【发布时间】:2015-09-23 17:35:03
【问题描述】:
我有一个使用 C#/MVC 4.5 的汽车网站,我需要找到一种更动态的方式从数据库中提取数据。更具体地说是动态刷新数据。
到目前为止,我已经想出了两种提取数据的方法,但是由于不同的原因它们都是不可接受的:
Car.cs 根据一个 int 参数从数据库中提取数据。
// CarContorller.cs
public class CarController : Controller
{
public static Car Car1 = new Car(1);
}
// FrontPage.cshtml
@using CarSite.Models
@{
Car C = new Car(1);
}
<div class="car-name">
Car Name From Model (Database): @C.Name
Car Name From Controller (Memory): @CarSite.Controllers.CarController.Car1.Name <br>
</div>
这就是我的困境:
从模型中拉取会在每次加载网站时强制刷新数据。因此,如果我有 3 辆汽车,每天有 1000 名访客,数据每天被提取 3000 次,即使它一遍又一遍地提取相同的数据。
从控制器中拉取只允许数据拉取一次,但如果发生变化,则在重置站点之前不会反映出来。
是否可以仅在控制器数据发生更改时刷新它?如果是这样,这是如何实现的?如果没有,我该怎么做才能防止这么多数据拉取?
【问题讨论】:
-
让我们使用 asp.net 缓存。链接到数据库的缓存将被通知更改以刷新其数据。 :D
-
我想在你的控制器中添加
DateTime LastTimeModified是没有问题的? -
@hungndv 你能扩展一下吗?你知道有一篇文章可以描述得更多吗?
标签: c# asp.net-mvc-4