Внутри моего Views/Shared/_Layout.cshtml
следующая панель навигации находится в <body>
:
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-controller="Client" asp-action="ClientList">Client List</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Client" asp-action="Import">Import</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Client" asp-action="Processing">Processing</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Client" asp-action="PostProcessing">Post Processing</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
Как вы можете видеть, у меня есть 4 представления: ClientList, Import, Processing и PostProcessing.Внутри каждого из этих представлений у меня есть кнопки для перехода к следующему или предыдущему представлению (это по большей части последовательный процесс), и поэтому действия контроллера выполняются в идентификаторе клиента.
Когда я нахожусь,скажем, в представлении PostProcessing и попытке просмотреть представление Import, щелкнув элемент панели навигации, я получаю исключение, потому что идентификатор не передается.
AsВ качестве запасного варианта я подумывал просто взять верхнюю панель навигации из макета и сделать ее Частичным представлением или Компонентом вида и визуализировать ее на каждой странице, но так как это кажется нелогичным при использовании макета, мне интересно, есть ли способбыть в состоянии просто использовать мой существующий _Layout
, а также использовать идентификатор текущего представления, которое будет отправлено, когда я нажму на ссылку.