MVC5如何为布局页面进行db调用

时间:2014-12-04 19:52:52

标签: asp.net-mvc-5 asp.net-web-api asp.net-mvc-layout

我有一个MVC5应用程序,它使用布局页面来控制页眉和页脚等。布局页面有一些由数据库驱动的部分,例如导航栏。我不确定这些电话的最佳做法是什么。我可以想到两种方式,但都不是完美的

方法1:使用页面视图模型传入数据。不喜欢这种方法我的主页控制器应该只关注主页内容,而不是布局。必须对每个视图重复这一过程。

方法2:Ajax到WebAPI控制器。有点倾向于此,虽然我认为这意味着丢失像@URL和@HTML这样的东西,用于创建链接和渲染自定义内容。

编辑:虽然是另一种方法 方法3:在Start上将信息加载到缓存中。由于这不是在初始设置后经常更改的信息,并且此代码显示在每个页面上,因此无论如何都需要缓存。

1 个答案:

答案 0 :(得分:4)

您应该从视图中调用控制器方法。在你看来:

@Html.Action("MyAction", "MyController")

确保此操作可以找到所需的所有内容,而无需传入值,并且您已设置。我们通过服务位置和/或依赖注入在多个项目中执行此操作。