ASP.NET MVC 2 - 避免反复查询数据库中的静态数据?

时间:2010-08-25 10:46:42

标签: c# asp.net-mvc performance session caching

每次在ASP.NET MVC2中加载页面时,我该怎么做才能避免重复加载静态数据?这非常浪费,我想解决它。

我的母版页右上角有典型的用户名+公司名称显示。但是由于MVC的无状态特性,每次加载页面时都必须查找这些数据,即使它永远不会改变。

在旧的webforms时代,我会把它扔进Session,但在MVC中似乎不鼓励这样做。此外,Web应用程序在webfarm上运行,因此我真的不想使用会话。

Web应用程序已经有很多静态数据项,可以在每个页面加载(用户货币,用户税率等)上查询,因此我认为只需在登录时加载一次即可获得性能提升。我只是不确定正确的MVC方法是什么(我还是MVC的新手)。

2 个答案:

答案 0 :(得分:3)

我总是使用内置的ASP.NET缓存,适当地设置过期,你很高兴。

public void Blah()
{
    var company = HttpRuntime.Cache.Get("Company") as string;
    if (company == null)
    {
        company = FetchCompanyFromDb();
        HttpRuntime.Cache["Company"] = company;
    }

    return this.View(company);
}

另见上一个问题:

Caching in asp.net-mvc

答案 1 :(得分:0)

您是否可以将用户币/用户名/税等封装到用户控件中,然后使用输出缓存?