将CSS或JavaScript文件从视图或局部视图添加到布局头


176

版面页面头:

<head>
    <link href="@Url.Content("~/Content/themes/base/Site.css")"
          rel="stylesheet" type="text/css" />
</head>

应用程序中的视图(AnotherView)需要:

<link href="@Url.Content("~/Content/themes/base/AnotherPage.css")"
      rel="stylesheet" type="text/css" />

AnotherView有一个局部视图(AnotherPartial),它需要:

<link href="@Url.Content("~/Content/themes/base/AnotherPartial.css")"
      rel="stylesheet" type="text/css" />

问题:如何添加这些CSS文件链接到布局头的AnotherView和AnotherPartial链接

RenderSection不是一个好主意,因为AnotherPage可以有多个Partials。将所有CSS添加到头部是没有用的,因为它会动态更改(取决于Anotherpages)。


@NuriYILMAZ根据您的标题,“从视图”和“或部分视图”之间存在巨大差异。无论如何,对此有什么新想法吗?
Shimmy Weitzhandler,2012年

Answers:


195

布局:

<html>
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title</title>
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
        <script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/modernizr-2.0.6-development-only.js")" type="text/javascript"></script>
        @if (IsSectionDefined("AddToHead"))
        {
            @RenderSection("AddToHead", required: false)
        }

        @RenderSection("AddToHeadAnotherWay", required: false)
    </head>

视图:

@model ProjectsExt.Models.DirectoryObject

@section AddToHead{
    <link href="@Url.Content("~/Content/Upload.css")" rel="stylesheet" type="text/css" />
}

5
我认为这是最简单的解决方案。
iamichi

好的开箱即用的解决方案!
jerrylroberts 2012年

14
如果该AddToHead部分位于嵌入在的局部视图中,则将无法正常工作View
Shimmy Weitzhandler,2012年

57
该问题特别提到了部分视图,而此最高评分的答案无法解决问题!对于另一个查询,这可能是一个很好的解决方案,但不是这个查询。
火神乌鸦

1
如果它只能部分视图使用,那将是一个优雅的解决方案。
强尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.