什么是在asp.net MVC的@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> }
必填项指示使用布局页面的视图是否必须具有脚本部分
如果
(1)你有这样的_Layout.cshtml视图
<html> <body> @RenderBody() </body> <script type="text/javascript" src="~/lib/layout.js"></script> @RenderSection("scripts", required: false) </html>
(2)你有Contacts.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>
在布局页面上,如果需要设置为false“@RenderSection(”scripts“,required:false)”,当页面呈现和用户在页面上时,contacts.js不呈现。
<html> <body><div>About<div> </body> <script type="text/javascript" src="~/lib/layout.js"></script> </html>
如果需要设置为true“@RenderSection(”scripts“,required:true)”,当页面呈现和用户在ABOUT页面上时,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 ,则仅在呈现子页面时才会呈现。