我正试图从_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()动作?
答案 0 :(得分:3)
@Html.Partial("_Menu")
将只呈现HTML视图,与控制器无关。如果您想使用@{ Html.RenderAction("Menu", "Home"); }
答案 1 :(得分:0)
根据要求采取行动。因此,您必须发送请求,例如通过Ajax到YourController/YourAction
或在浏览器中输入网址。
@Html.Partial()
只需使用给定数据呈现视图。
要通过调用操作呈现视图,请参阅Ahmends的回答https://stackoverflow.com/a/40589584/3936440。