从MVC中的局部视图加载菜单
本文关键字:视图 加载 菜单 局部 MVC | 更新日期: 2023-09-27 18:17:44
我试图将菜单从_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()动作?
@Html.Partial("_Menu")
将只呈现HTML视图,与控制器无关。如果你想调用控制器,使用@{ Html.RenderAction("Menu", "Home"); }
操作是根据请求调用的。因此,你必须发送一个请求,例如通过Ajax到YourController/YourAction
或在浏览器中键入url。
@Html.Partial()
只是用给定的数据呈现视图。
要通过调用操作来呈现视图,请参阅Ahmends的回答https://stackoverflow.com/a/40589584/3936440。