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

如何在OrchardCore主题的layout.cshtml视图中引用并渲染局部视图

问题原因与解决步骤

1. partial标签直接输出源码的问题

该问题是因为你的主题视图没有引入Razor标签助手配置,导致<partial>标签没有被解析,直接作为普通HTML输出到页面。
解决方法:
在主题项目的Views目录下新增/编辑_ViewImports.cshtml文件,添加以下配置:

// 引入ASP.NET Core内置标签助手,包含partial标签的解析逻辑
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
// 引入OrchardCore专属标签助手(可选,推荐添加以支持Orchard内置功能)
@addTagHelper *, OrchardCore.DisplayManagement
@addTagHelper *, OrchardCore.ResourceManagement

配置完成后partial标签即可正常生效。

2. 局部视图找不到的问题

从报错的搜索路径可以看出,Razor默认只会在Views/Shared、当前控制器对应视图目录下搜索局部视图,你将_MyPartial.cshtml放在主题Views根目录下,不在默认搜索路径内,所以会触发找不到的报错,有两种解决方案可选:

方案A:调整文件存储位置

将_MyPartial.cshtml移动到主题的Views/Shared目录下,之后即可直接通过名称调用:

<partial name="_MyPartial" />

或者

@await Html.PartialAsync("_MyPartial")
方案B:调用时填写完整路径

不想调整文件位置的话,调用时传入主题内的完整相对路径即可:

<partial name="~/TheExperimentalTheme/Views/_MyPartial.cshtml" />

或者

@await Html.PartialAsync("~/TheExperimentalTheme/Views/_MyPartial.cshtml")

额外注意事项

如果是线上部署场景,需要确认主题的.csproj文件中已将Views目录下的.cshtml文件设置为嵌入式资源,或者已启用Razor运行时编译,避免部署后出现视图找不到的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:06:03