从MVC中的局部视图加载菜单

时间:2016-11-14 13:04:41

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正试图从_Layout.cshtml中分离菜单,但我遇到了困难。

我的文件位于下方。

Views/Home/Index
Views/Shared/_Layout
Views/Shared/_Menu

在_Layout.cshtml文件中,我有以下代码......

@Html.Partial("_Menu")

菜单操作位于HomeController中,如下所示

public ActionResult Menu()
{
    MenuModel menu = new MenuModel();
    return PartialView("_Menu", menu);
}

_Menu将以下代码作为第一行

@model DomainModel.MenuModel

当我在VS上运行项目时,一切看起来都很完美,但我没有在HomeController中调用Menu()动作。它以某种方式找到_Menu并完美地显示它。但我不明白为什么它不调用Menu()动作?

2 个答案:

答案 0 :(得分:3)

@Html.Partial("_Menu")将只呈现HTML视图,与控制器无关。如果您想使用@{ Html.RenderAction("Menu", "Home"); }

来呼叫控制器

答案 1 :(得分:0)

根据要求采取行动。因此,您必须发送请求,例如通过Ajax到YourController/YourAction或在浏览器中输入网址。

@Html.Partial()只需使用给定数据呈现视图。

要通过调用操作呈现视图,请参阅Ahmends的回答https://stackoverflow.com/a/40589584/3936440