что такое @RenderSection в asp.net MVC



какова цель и как она действует.Я понимаю, что делают связки, но мне еще предстоит выяснить, что это делает и, вероятно, важно.



@RenderSection("scripts", required: false)


возможно, маленький пример о том, как его использовать?

789   3  

3 ответов:

Если у вас есть файл _Layout.cshtml вид, как это

<html>
    <body>
        @RenderBody()
        @RenderSection("scripts", required: false)
    </body>
</html>

затем вы можете иметь индекс.вид содержимого cshtml, как это

@section scripts {
     <script type="text/javascript">alert('hello');</script>
}

the требуются указывает, должен ли вид, использующий страницу макета, иметь раздел скриптов

если

(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) у вас есть около.cshtml

<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <h2>    Contacts</h2>
    </div>
</div>

на странице макета, если требуется, установлено значение false " @RenderSection ("scripts", required: false)", когда страница отображается и пользователь находится на странице about, контакты.js не рендерит.

    <html>
        <body><div>About<div>             
        </body>
        <script type="text/javascript" src="~/lib/layout.js"></script>
    </html>

if required имеет значение true " @RenderSection ("scripts", required: true)", когда страница рендеринг и пользователь находятся на странице О компании, контактах.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>

короче говоря, когда установлено значение правда, нужно ли вам это или нет на других страницах, он будет отображаться в любом случае. Если установлено значение ложные, он будет отображаться только при отображении дочерней страницы.

здесь defination в Rendersection от MSDN

на страницах макета отображает содержимое именованного раздела. MSDN

In _layout.cs page put

@RenderSection("Bottom",false)

здесь отображается содержимое раздела bootom и указывает false логическое свойство, чтобы указать, является ли раздел или нет.

@section Bottom{
       This message form bottom.
}

это означает, что если вы хотите, чтобы нижний раздел на всех страницах, то вы должны использовать false в качестве второго параметр в метод Rendersection.

Comments

    Ничего не найдено.