@RenderSection 的目的是什么?我知道捆绑包是做什么的,但我还不知道它是做什么的,而且它可能很重要。
@RenderSection("scripts", required: false)
也许可以举个小例子说明如何使用它?
如果您的 _Layout.cshtml 视图是这样的
<html>
<body>
@RenderBody()
@RenderSection("scripts", required: false)
</body>
</html>
那么您就可以拥有一个如下所示的 index.cshtml 内容视图
@section scripts {
<script type="text/javascript">alert('hello');</script>
}
其中的 required 表示使用布局页面的视图是否必须包含脚本部分
如果
(1) 您的 _Layout.cshtml 视图是这样的
<html>
<body>
@RenderBody()
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
@RenderSection("scripts", required: false)
</html>
(2) 您有联系人.cshtml
@section Scripts{
<script type="text/javascript" src="~/lib/contacts.js"></script>
}
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
(3) 您有 About.cshtml
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2> Contacts</h2>
</div>
</div>
在布局页面中,如果将 required 设为 false "@RenderSection("scripts", required:false)",则当页面渲染且用户位于 about 页面时,不会渲染 contacts.js。
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
</html>
如果 required 设置为 true "@RenderSection("scripts", required: true)",当页面渲染且用户位于关于页面时,仍会渲染 contacts.js。
<html>
<body><div>About<div>
</body>
<script type="text/javascript" src="~/lib/layout.js"></script>
<script type="text/javascript" src="~/lib/contacts.js"></script>
</html>
*简而言之,如果设置为true,无论其他页面是否需要,它都会被渲染。 如果设置为false,则只有在渲染子页面时才会渲染。
下面是 "MSDN "对 Rendersection 的定义 在布局页面中,渲染指定部分的内容。
在 _layout.cs 页面中放入
@RenderSection("Bottom",false)
此处渲染 bootom 部分的内容,并指定 false
布尔值属性以指定该部分是否为必填部分。
@section Bottom{
This message form bottom.
}
也就是说,如果要在所有页面中都使用底部部分,则必须在 Rendersection 方法的第二个参数中使用 false。