2011-11-20 58 views
0

我正在使用Asp.Net MVC 3.0,我在共享文件夹中有_layout.cshtml。问题是我想在这个应该从数据库加载的.cshtml中生成菜单。但据我了解_layout.cshtml将不会有任何行动等相关的地方,我可以写逻辑,我不想在cshtml本身写所有的代码。是否有任何选项可以在共享文件夹中为cshtml编写逻辑?我应该在哪里编写逻辑从数据库获取菜单?

回答

1

您可以设置控制器和视图来呈现菜单并在_layout.cshtml内调用它。

@{ Html.RenderAction("Index", "Menus"); } 
1

Eranga是正确的,但让我扩大他的答案,专门回答你的问题。

你可以做的是创建一个新的控制器(例如“菜单”),并创建一个名为default的操作。让这个动作返回一个视图,随心所欲地调用它。现在转到您的共享文件夹,并使用您指定的名称添加视图。

现在是很酷的部分。默认情况下,MVC框架将首先查看controllername/viewname路径,如果失败,它将查看您的shared/viewname路径,这是您刚刚创建的视图所在的位置!整洁,嗯? ; p

查看http://www.aspnetmvcninja.com/views/view-search-paths了解关于MVC搜索路径的更多信息。

相关问题