写入头部,但不是通过_Layout.cshtml

Jac*_*ack 8 c# razor asp.net-mvc-3

我想通过页面视图独立写入HTML头元素,而不是通过_Layout.cshtml,因为每个页面都需要不同的脚本,元数据,标题等.这可以在ASP.NET MVC 3中完成,使用C#/剃刀?

@using Test.Models;
@model IEnumerable<Player>
<!--           
Put JavaScript, CSS etc... Into the page <head> here.
-->

    <h2>Index</h2>
    <table id="scores">
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Gender</th>
        </tr>
    @foreach(Player p in Model)
    {
        <tr>
            <td>@p.name</td>
            <td>@p.age</td>
            <td>@p.gender</td>
        </tr>
    }
    </table>
    <canvas id="game" width="800" height="600">
        <p>Download a modern browser.</p>
    </canvas>
Run Code Online (Sandbox Code Playgroud)

Kev*_*ans 20

您可以使用部分来完成此操作.转到你的_Layout.cshtml并添加一个名为head的新部分,如下所示:

<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
@RenderSection("head", false)
</head>
Run Code Online (Sandbox Code Playgroud)

新部分添加了@RenderSection.现在,在您的个人视图中,您可以像这样向头部添加内容:

@section head
{
<script type="text/javascript">
   //Your java script here
</script>
}
Run Code Online (Sandbox Code Playgroud)

渲染完整视图时,javascript将在链接标记正下方的head部分中呈现.你可以放任何东西.例如,元标记.