You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Razor页中_Layout用PartialView生成动态主菜单为何无显示?

问题原因及解决办法

1. 模型未填充数据

你在_Layout中创建的partialModel是一个空列表,没有添加任何MainMenuTable实例,PartialView遍历空模型自然不会生成任何菜单元素。

解决:给列表添加数据,示例:

@{
    var partialModel = new List<WebApplication4.Models.MainMenuTable>()
    {
        new WebApplication4.Models.MainMenuTable { Title = "首页", Link = "/Index" },
        new WebApplication4.Models.MainMenuTable { Title = "关于我们", Link = "/About" }
    };
}

2. Partial标签的模型传递语法错误

你的partial标签中model="partialModel"是传递字符串字面量,而非变量partialModel,导致PartialView接收的模型类型不匹配(期望List<MainMenuTable>,实际得到字符串),最终无法渲染内容。

解决:使用@引用变量:

<partial name="_MainMenu" model="@partialModel"/>

3. PartialView路径或命名空间问题

  • 确认_MainMenu.cshtml是否放在正确位置:如果是共享视图,应放在Pages/Shared或Views/Shared文件夹下,否则需要指定完整路径,比如~/Pages/Components/_MainMenu.cshtml。
  • 检查_Layout中是否引用了MainMenuTable的命名空间:如果没有添加@using WebApplication4.Models;,创建的List<MainMenuTable>会因类型不明确导致模型传递失败。

4. 模型类型不匹配

确保_Layout中创建的List<MainMenuTable>与PartialView顶部@model List<WebApplication4.Models.MainMenuTable>的类型完全一致,包括命名空间,避免因类型不一致导致模型绑定失败。

内容的提问来源于stack exchange,提问作者Jesica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:18:43