我有一个页面列出了许多机构。列表中每个代理商旁边都有一个代理商类型下拉列表。
我在我的控制器方法中有这个设置我的视图:
var agenciesViewModel = new AgencyViewModel
{
Agencies = _agenciesRepository.Agencies.ToList(),
AgencyTypes = _agencyTypesRepository.AgencyTypes.ToList()
};
return View("Agencies", agenciesViewModel);
在我的代理商看来:
<table cellpadding="0" cellspacing="0">
@foreach (Agency agency in Model.Agencies)
{
<tr>
<td><b>@agency.Name</b></td>
<td>
@Html.DropDownList("AgencyTypes" + agency.ID,
new SelectList(Model.AgencyTypes, "AgencyTypeID", "Name"))
</td>
</tr>
}
</table>
问题是在这个特定页面上,我列出了大约 500 个代理机构,这意味着 500 个下拉列表。大约有2000种代理类型。
这会导致初始页面加载时出现性能问题,加载页面大约需要 2 分钟。几乎每次它循环通过代理时,它似乎都在从数据库中检索 AgencyTypes 集合。
它还会在页面加载后导致性能问题 - 如果我单击其中一个下拉菜单,打开列表大约需要 15 秒。我发现这很奇怪,因为所有数据都已加载,但由于某种原因,它导致我的浏览器出现性能问题。
我是否正确设置了这些下拉列表,还是有更好的方法可以提高性能?