我们正在开发一个 ASP.NET 应用程序。它有 3-4 个表格显示国家列表下拉菜单。在这里,我们希望通过从数据库中获取数据来避免每次绑定这些下拉列表。而是寻找一种更好的做法来绑定它一次,比如在应用程序加载/其他方面。
请让我知道我们如何着手解决这个问题?任何参考链接或文档都会很棒。
非常感谢,问候, 纳尼
将下拉列表放在用户控件中并在用户控件上启用输出缓存。
此解决方案会缓存呈现的 HTML,因此不需要在每个页面请求上调用数据绑定。
另一种可能性是在您的 BL 逻辑上使用一些缓存机制。例如,在您的页面/用户控件中,您可以拥有(不要把我的语法看得太严格;))
公共部分类MyPaged:页面{
公共无效页面加载(..){
if(!IsPostBack)
{
dropDownCountries.DataSource = CountryBL.GetCountries();
dropDownCountries.DataBind();
}
...
}
}
在您的业务逻辑类中,您执行某种缓存,您可能有一个单例类来保存国家和功能作为您的缓存。伪代码方法可以是
public IList<Country> GetCountries
{
//if the cache is empty or it should be refreshed, fills the local
//list of countries, i.e. the cache, with fresh entries from the DB
//there could be some time condition, i.e. refresh every day or so
EnsureCacheValid();
return CachedCountries; //the cache of countries
}
这可能是另一种选择,其优点是您的表示逻辑甚至不知道缓存,如果您要添加 Web 服务访问,您也将从缓存中受益。您唯一需要注意的是用户是否有可能更改国家/地区(在您的示例中我不认为)。