.Net MVC如何向各个视图添加脚本

Pec*_*tum 4 javascript c# asp.net asp.net-mvc razor

我想知道如果我使用包装.cshtml文件,是否有办法将JavaScript文件添加到各个视图.

基本上我有一个包装器cshtml文件_Layout,我正在使用我的所有前端视图.它基本上有<header>我的标题/导航和页脚的部分和HTML.它还包含对页脚后每页上所需的所有JavaScript文件的引用.

但是,在我的联系人视图中,我想使用另一个JavaScript文件,但我不想将其添加到包装器中,因为它会将其添加到每个视图中.

无论如何使用条件语句将文件添加到包装器 - 即如果Contact视图然后引用联系人JS文件?

joh*_*ose 6

你可以使用Razor's section.它允许您在布局页面中创建"部分",然后从视图页面添加它们.

您可能已在布局页面中声明了"脚本"部分.如果没有,您需要做的就是@RenderSection("Scripts", required: false)在您的其他script标签之后立即添加您的布局.这将创建一个名为"Scripts"的部分,稍后我们将添加该部分.

然后,您可以通过将以下内容添加到各个视图来添加到该部分:

@section Scripts {
    <script type="text/javascript" src="..."></script>
}
Run Code Online (Sandbox Code Playgroud)

您也可以使用其他元素执行此操作; 您不仅限于脚本.您只需要@RenderSection("SectionName", required: false)在布局页面中添加另一个.

您可能也有兴趣阅读Scott Gu的关于Layouts and Sections with Razor的稍微日期(2010年)的博客文章.