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

.NET Core ViewComponent返回指定分部视图路径找不到如何解决

问题修复方案

根因定位

错误由两点拼写/格式问题导致:

  • 视图目录名拼写错误:ASP.NET Core默认的视图根目录是Views(复数),你写的路径中误写为单数View
  • 路径格式校验异常:拼写错误的路径不符合系统可识别的绝对视图路径规则,导致ViewComponent自动拼接了组件默认查找前缀Components/_PageMenu/,才出现报错里的异常拼接路径

修复方法(无需修改路由配置)

方案1:直接修正绝对路径(适配现有代码结构,不需要移动视图文件)

把_PageMenuViewComponent的Invoke方法中的视图路径修正为正确拼写即可,模型参数可以正常传递:

public IViewComponentResult Invoke()
{
    var menuList = _sys_menu_mstr_repo.Get_ALL_Menu_Mstr();
    // 仅需把路径中的View改为Views即可
    return View("~/Views/Shared/_PageMenu.cshtml", menuList);
}

方案2:遵循ViewComponent约定路径(后续无需写全路径,更易维护)

如果不想每次写全路径,可以遵循ASP.NET Core的ViewComponent视图默认查找规则调整文件位置:

  1. 在Views/Shared目录下新建Components文件夹,再新建和组件同名的_PageMenu文件夹
  2. 把_PageMenu.cshtml移动到上述新建的_PageMenu文件夹下,重命名为Default.cshtml
  3. Invoke方法可以简化为如下写法,模型仍可正常传递:
public IViewComponentResult Invoke()
{
    var menuList = _sys_menu_mstr_repo.Get_ALL_Menu_Mstr();
    // 不需要指定路径,系统自动查找约定位置的Default视图
    return View(menuList);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:57:05