目前我有一个带导航菜单的页面。此导航菜单从数据库中获取项目和子项目。 我认为如果我把它作为一个单独的控制器来控制它会更容易。 例如:
public class NavigationMenu : Controller
{
public ActionResult Menu()
{
Model model = // Get items and sub items
return View(model);
}
}
这是正确的方法吗?或者我不应该出于某种原因这样做?
如果我这样做,这个菜单视图将没有任何主布局。我应该从中删除所有<html><head><body>...
html代码吗?
答案 0 :(得分:3)
我们使用这种模式,虽然我们称之为NavigationController,而action方法是TopTabs。我们将它作为[ChildActionOnly],并返回局部视图。要在布局中渲染导航,我们使用@ Html.Action()。
我会回答你的问题,然后在你的布局或主视图中将局部视图渲染为子动作:
[ChildActionOnly]
public class NavigationController : Controller
{
public PartialViewResult CommonMenu()
{
Model model = // Get items and sub items
return PartialView(model);
}
}