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

.NET项目中.cshtml无法关联同目录下.cshtml.css文件的问题咨询

.NET项目中.cshtml无法关联同目录下.cshtml.css文件的问题咨询

嘿,我来帮你排查下这个问题!你提到的.cshtml.css是.NET的Razor页面CSS隔离特性,正常情况下确实应该和同目录的视图自动关联,但没生效的话,大概率是下面这些原因之一,咱们一个个来排查:

  • 检查你的.NET版本和项目类型:
    这个CSS隔离特性的支持是分阶段的:

    • .NET 5:仅支持带@page指令的Razor Pages
    • .NET 6+:同时支持Razor Pages和MVC视图
      如果你用的是.NET 5及更早版本,而且你的test.cshtml是没有@page指令的MVC视图,那自动关联是不生效的,得升级到.NET 6+才行。
  • 确认项目是否启用了CSS隔离:
    打开你的项目文件(.csproj),检查有没有相关配置。对于.NET 5+,默认是启用的,但如果被手动禁用了就会失效。确保没有类似下面的禁用配置:

    <DisableRazorComponentCssIsolation>true</DisableRazorComponentCssIsolation>
    

    另外,确保<RazorCompileOnBuild>设置为true,这是编译时生成隔离CSS文件的必要条件。

  • 手动引用路径的问题:
    你手动添加的<link>标签路径不对,因为CSS隔离的文件在编译后会被重命名(比如变成Views.example.test.css,还会带上哈希值),而且会被输出到wwwroot/css目录下,不是留在原视图目录。所以直接写test.cshtml.css是找不到的。
    如果非要手动引用,应该用正确的根路径,比如:

    <link rel="stylesheet" href="@Url.Content("~/css/Views.example.test.css")" />
    

    不过更建议你不要手动加这个标签,因为自动关联会帮你注入正确的引用,手动加反而可能导致冲突。

  • 清理并重新生成项目:
    有时候编译缓存会导致CSS文件没正确生成,试试右键项目→清理,然后再右键→生成,之后看看wwwroot/css目录下有没有生成对应的隔离CSS文件。

  • 浏览器缓存的锅:
    有时候浏览器会缓存旧的资源,导致新的CSS没加载出来。试试用Ctrl+F5强制刷新页面,或者清空浏览器的缓存再试。

备注:内容来源于stack exchange,提问作者Makouru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:22:56