теги: , не охватывает весь html со страницы содержимого

#html #.net #asp.net-core #tags

Вопрос:

Я перенес коды с .NET(webform) на .NET Core :

Внутри _Layout.cshtml , следующие теги <hr> , <section> охватывают весь width(e.g. 100%) html, как и ожидалось. Однако по некоторым причинам вставка подобных тегов на content страницах, например, Index.cshtml не охватывает всю width веб-страницу целиком.

Даже после добавления в Index.cshtml

 @page
@model IndexModel

@{
    ViewData["Title"] = "Home page";
}
     //test
    <div class="container-fluid">
        <hr style="width:20000%" />
    </div>
 

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

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

Ответ №1:

Для этого явления, я думаю, вам следует взглянуть на официальную документацию по _layout.

Док:Что такое Макет.

Статья:Что такое Макет, _ViewStart, тело визуализации и раздел визуализации в MVC?.

Функция RenderBody() вызывается для отображения содержимого дочернего представления. Любое содержимое указанного представления, не содержащееся в объявлении @section, будет отображаться с помощью функции RenderBody(). Используя представление макета выше, это означает, что все содержимое в дочернем представлении будет отображаться внутри . Это позволяет нам отделить макет, общий для всех видов, от макета, специфичного для одного вида.

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

В вашем _layout :

  @RenderSection("Body", required: false)
 

По вашему мнению:

 @section Body
{
    <div class="container-fluid">
        <hr style="width:20000%" />
    </div>
}
 

Комментарии:

1. Привет. Огромное спасибо за ваши полезные отзывы.