什么是在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 ,则仅在呈现子页面时才会呈现。