如何在RazorLight中使用独立文件中的CSS?
在RazorLight中分离CSS与CSHTML文件的实现方案
方法1:嵌入资源方式加载外部CSS
- 将CSS文件设置为项目的嵌入资源:右键CSS文件 → 属性 → 生成操作选择「嵌入的资源」
- 在.cshtml模板中,通过程序集引用加载CSS内容:
<style> @await RenderEmbeddedResourceAsync(typeof(YourProjectClass).Assembly, "YourNamespace.FolderPath.YourStyle.css") </style>
- 替换说明:
YourProjectClass用项目中任意类的类型即可,YourNamespace.FolderPath.YourStyle.css是CSS文件的完整嵌入路径(可通过编译后的资源清单确认)
方法2:通过模板参数传递CSS内容
- 渲染模板前读取外部CSS文件内容,作为参数传入:
var cssContent = File.ReadAllText("本地CSS文件的绝对/相对路径"); var renderResult = await razorEngine.CompileRenderAsync("模板名称", new { Css = cssContent });
- 在.cshtml模板中直接输出参数里的CSS:
<style> @Model.Css </style>
方法3:使用布局模板统一管理样式
- 创建通用布局模板(如
_Layout.cshtml),在布局中集中引入CSS:
<!DOCTYPE html> <html> <head> <style> @await RenderEmbeddedResourceAsync(typeof(LayoutHelper).Assembly, "YourNamespace.Resources.Global.css") </style> </head> <body> @RenderBody() </body> </html>
- 业务模板中指定使用该布局:
@{ Layout = "_Layout"; } <!-- 模板业务内容 -->
内容的提问来源于stack exchange,提问作者Dronius
相关产品推荐
相关产品推荐

