每次在ASP.NET MVC2中加载页面时,我该怎么做才能避免重复加载静态数据?这非常浪费,我想解决它。
我的母版页右上角有典型的用户名+公司名称显示。但是由于MVC的无状态特性,每次加载页面时都必须查找这些数据,即使它永远不会改变。
在旧的webforms时代,我会把它扔进Session,但在MVC中似乎不鼓励这样做。此外,Web应用程序在webfarm上运行,因此我真的不想使用会话。
Web应用程序已经有很多静态数据项,可以在每个页面加载(用户货币,用户税率等)上查询,因此我认为只需在登录时加载一次即可获得性能提升。我只是不确定正确的MVC方法是什么(我还是MVC的新手)。
答案 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);
}
另见上一个问题:
答案 1 :(得分:0)
您是否可以将用户币/用户名/税等封装到用户控件中,然后使用输出缓存?