Html.Partial和@section MVC

时间:2017-04-07 17:43:06

标签: asp.net-mvc asp.net-mvc-5

@ Html.Partial,@ Html.Section和@section之间有什么区别?我什么时候应该使用它们?

1 个答案:

答案 0 :(得分:0)

@ Html.Partial是将页面拆分为多个部分。如果不填写该部分,该页面将不完整。

@ Html.Section是一个(通常是可选的)部分,通常在布局中定义,继承者可以添加内容。例如,如果他们想要向页面添加额外的脚本,则在默认布局的末尾有一个“脚本”部分,允许页面在内容的末尾注入它。

@section只是在子页面中定义@Html.Section的内容。

例如:

<!-- layout page. -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
</head>
<body>
    <div class="container body-content">
        Layout content.<br/>
        @RenderBody()
    </div>
    @RenderSection("scripts", required: false)
</body>
</html>

...

<!-- child page -->
@section scripts{
    <script src="/Scripts/jquery.signalR-2.2.1.min.js"></script>
}

<div>Child content.</div>

<div>Partial content here: @Html.Partial("~/Views/PartialContent.cshtml")</div>

...

<!-- partial content in PartialContent.cshtml -->
Hello!

结果如下:

Layout content.
Child content.
Partial content here: Hello!