c# - 如何为特定视图加载特定脚本和 css?
问题描述
假设我有一个名为 的视图Login.cshtml
,我需要加载这些视图:
<link href="~/css/particle.css" rel="stylesheet" />
<script src="~/js/particle-js/particles.min.js"></script>
<script src="~/js/particle-js/app.js"></script>
在我的应用程序中,我还_Layout.cshtml
包含要为每个页面加载的基本脚本。如何在用户访问Login.cshtml
视图时加载上面的脚本和 css,如发生在_Layout.cshtml
?
我学到的是存在@section
,但我不知道这样做是否最好,有人可以建议我如何正确地做到这一点?
提前致谢。
解决方案
部分似乎是这个用例的合适解决方案。
因此,您将RenderSection
在布局 cshtml 文件中使用该方法。例如,如果您想head
在文档的部分中包含一些静态资源,您将在布局的 head 元素中创建一个新部分
<head>
@RenderSection("PageCss",required:false)
</head>
<body>
<div>
@RenderBody()
@RenderSection("scripts", required: false)
</div>
</body>
在您的视图(Login.cshtml
)中,您将通过此特定部分添加静态资源。
@section PageCss
{
<link href="~/css/particle.css" rel="stylesheet" />
<script src="~/js/particle-js/particles.min.js"></script>
<script src="~/js/particle-js/app.js"></script>
}
@section PageCss
{
<script src="~/js/anotherSciptWhichDoesNotBlockRendering.js"></script>
}
当 razor 执行代码时,它将呈现正确的 html。
您可以创建多个部分并根据需要使用它。
考虑适当地使用脚本标签上的async
anddefer
属性来防止呈现阻塞脚本下载/执行行为。
推荐阅读
- javascript - 在 React Native 中,有没有办法让嵌套很深的元素变成全屏元素?
- xamarin.forms - Xamarin Plugin.Permission。请求权限时出错
- flutter - Flutter:知道前置摄像头是否在镜像图像
- sql-server - Spring Boot 2.0 Hikari 自动连接不起作用
- coldfusion - 改写 lucee 的连接
- wso2 - 在 WSO2 身份服务器中启用单一注销并重定向到自定义登录页面
- android - 触发通知时唤醒设备
- flutter - 从 Visual Studio Code 运行所有 Flutter 单元测试
- c++ - 已声明但未初始化的变量存储什么?
- ruby-on-rails - 【carrierwave+ffmpeg】无法上传有声视频