我有一个C# MVC 5
网络应用程序,我创建了一个包含类别的模型,然后我通过MVC 5 Controller with views, using Entity Framework
使用自动创建的控制器和视图。
我还有其他几个需要这些类别列表的控件。每页至少需要一次类别列表,但有时需要多次。我只是将信息读入列表,而不是进行多个数据库调用,如下所示:
var categoryQuery = from d in db.Categories
orderby d.Name
where d.Visible == true
select d;
List<Category> categoryList = new List<Category>();
categoryList.AddRange(categoryQuery);
我的控制器中是否有某个地方可以放置此代码,以便只调用一次但我可以多次使用该列表?
修改
编辑以提供更好的示例。在我的_Layout.cshtml页面中,我调用一个HTML动作,它返回一个局部视图来显示类别列表:
@Html.Action("Menu", "Categories", new { DropdownMenuTitle = "Categories" })
然后在我的Index.cshtml页面上,在同一个控制器中,我进行另一个数据库调用,以获取我在页面上创建SelectList然后是DropDownList的类别列表。
如果没有两个数据库调用,我该怎么做?