Я работаю над финальным проектом для моего ASP. NET MVC класса. Подводя итог, можно сказать, что это система управления отелем, которая позволяет пользователям бронировать гостиничный номер.
Я использую пакет bootstrap Nuget для обеспечения стиля CSS, но после устранения неполадок я обнаружил его вызывает проблемы с определением размера блочной модели.
Я работаю в панели администрирования, где системный администратор может войти в систему для выполнения задач администрирования; такие как просмотр бронирования, просмотр пользовательских данных и т. д. c. Когда я просматриваю страницу, ширина соответствует размеру экрана, но высота очень мала, кажется, что она отображается в 1366x215,5, хотя я ожидаю, что она заполнит экран. Стоит отметить, что я использую контроллер Entity Framework (с предварительно сгенерированными представлениями), поэтому вместо перенаправления со страницы администратора на контроллер EF я использую IFrame для отображения представлений EF с контроллера администратора.
Когда я удаляю ссылку на bootstrap .min. css из родительского представления, оставляя ссылку bootstrap в представлении, отображаемом IFrame, все работает хорошо. Так что я думаю, это связано с проблемой, когда родитель использует файл bootstrap .min. css. Я попытался изменить его, где я удаляю ссылку из представления IFrame и сохраняю ее в родительском представлении, но это все равно происходит.
Кажется, что это 100%, вызванное ссылкой bootstrap в родительский вид, но я использую его по всему приложению и больше нигде не вижу проблем.
Вот фотография того, что отображается:
I использовать мастер-макет для страниц моего администратора:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<title>ReserveIt | @ViewBag.Title</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand">ReserveIt</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
@Html.ActionLink("Users", "Main", "Admin", null, new { @class = "nav-link" })
</li>
@if (Session["email"] != null)
{
<li class="nav-item">
@Html.ActionLink("My Account", "Details", "Accounts", new { id = Session["userID"] }, new { @class = "nav-link" })
</li>
}
<li class="nav-item">
<a class="nav-link" href="reservations.php">Reservations</a>
</li>
</ul>
<div class="form-inline my-2 my-lg-0">
@if (Session["email"] == null)
{
@Html.ActionLink("Login", "Index", "Login", null, new { @class = "btn btn-outline-success my-2 my-sm-0" });
}
else
{
@Html.ActionLink("Logout", "Logout", "Login", null, new { @class = "btn btn-outline-success my-2 my-sm-0" });
}
</div>
</div>
</nav>
@RenderBody()
</body>
</html>
В настоящее время у меня есть только ссылка на макет и теги IFrame в родительском представлении
@{
ViewBag.Title = "Main";
Layout = "~/Views/Shared/_AdminMasterLayout.cshtml";
}
<iframe src="@Url.Action("Index", "Accounts")"></iframe>
И представление контроллера EF (представление в окне IFrame) выглядит следующим образом:
@model IEnumerable<ReserveIt.Models.User>
@{
ViewBag.Title = "Index";
}
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
<th>
@Html.DisplayNameFor(model => model.Firstname)
</th>
<th>
@Html.DisplayNameFor(model => model.Middlename)
</th>
<th>
@Html.DisplayNameFor(model => model.Lastname)
</th>
<th>
@Html.DisplayNameFor(model => model.Phone)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Firstname)
</td>
<td>
@Html.DisplayFor(modelItem => item.Middlename)
</td>
<td>
@Html.DisplayFor(modelItem => item.Lastname)
</td>
<td>
@Html.DisplayFor(modelItem => item.Phone)
</td>
<td style="white-space: nowrap">
@Html.ActionLink("Edit", "Edit", new { id = item.UserID }) |
@Html.ActionLink("Details", "Details", new { id = item.UserID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.UserID })
</td>
</tr>
}
</table>
Я относительно новичок в ASP. NET, поэтому я, скорее всего, что-то упустил и рад учиться.