#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. Привет. Огромное спасибо за ваши полезные отзывы.