我想知道如果我使用包装器.cshtml
文件,是否有办法将JavaScript文件添加到各个视图。
基本上我有一个名为_Layout
的包装器cshtml文件,我用于所有前端视图。它基本上有<header>
部分和我的标题/导航和页脚的HTML。它还包含对页脚后每页上所需的所有JavaScript文件的引用。
但是,在我的联系人视图中,我想使用另一个JavaScript文件,但我不想将其添加到包装器中,因为它会将其添加到每个视图中。
是否有使用条件语句将文件添加到包装器 - 即如果Contact视图然后引用联系人JS文件?
答案 0 :(得分:6)
您可以使用Razor的section
。它允许您在布局页面中创建“部分”,然后从视图页面添加它们。
您的布局页面中可能已经声明了“脚本”部分。如果没有,您只需在您的其他@RenderSection("Scripts", required: false)
标记之后立即在布局中添加script
即可。这将创建一个名为“Scripts”的部分,稍后我们将添加该部分。
然后,您可以通过在个人观看中添加以下内容来添加到该部分:
@section Scripts {
<script type="text/javascript" src="..."></script>
}
您也可以使用其他元素执行此操作;您不仅限于脚本。您只需要在布局页面中添加另一个@RenderSection("SectionName", required: false)
。
您可能也有兴趣阅读Scott Gu的稍微过时的日期(2010)blog post on Layouts and Sections with Razor。