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

.NET 6项目中是否可以混用.cshtml文件与.razor文件?

问题解答

首先纠正认知偏差:.razor后缀的Razor组件并非只能用于Blazor Web应用,.NET 6及以上版本的ASP.NET Core Razor Pages、MVC项目都支持静态渲染Razor组件,你现在渲染失败是配置和写法的问题,不是技术栈不兼容。


两种可选解决方案

  • 方案1:继续使用现有Razor组件做Footer
    你需要先完成2个配置:
    1. 在Program.cs中添加Razor组件服务注册:
    builder.Services.AddRazorComponents();
    
    1. 确认你写@section Footer的文件是.cshtml后缀的Razor页面/布局文件,且component标签的语法没有转义错误,实际写法如下:
    @section Footer {
        <component type="typeof(NewProject.Pages.Footer)" render-mode="Static" />
    }
    
  • 方案2:替换为Razor Pages局部视图(更推荐)
    你的Footer是全站通用的公共静态部件,没有复杂交互逻辑的前提下,用局部视图更适配Razor Pages技术栈,不需要额外注册服务,开发维护成本更低:
    1. 在Shared文件夹下创建_Footer.cshtml局部视图,写入你需要的Footer内容
    2. 在需要调用的位置直接用标签助手渲染即可:
    @section Footer {
        <partial name="_Footer" />
    }
    

选型建议

你当前用的是Razor Pages纯服务端渲染模式,没有大量前端交互需求的前提下,公共部件优先选择局部视图即可;如果后续有高交互的业务模块,再引入Razor组件开发即可,不需要为了用组件而用组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:45:04