В принципе, то, что я сделал, было создать @helper построить свои пункты меню, вы просто должны перейти к модели, какой пункт меню в данный момент активен в некотором роде и при создании этого элемента установите href на #. Это можно сделать с помощью javascript/jquery.
здесь был мой метод @helper:
@helper MenuItemDesigner(string MenuItemName, bool hasAccess, string view, string controller, string areaName, MenuItems.Name menuItem, string glyphicon, string badge)
{
if (hasAccess)
{
<a
@if (Model.ActiveMenuItem == menuItem)
{
<text>id = "@menuItem" href="#"</text>
@Html.Raw("class= 'list-group-item active'");
}
else
{
<text>id = "@menuItem" href="@Url.Action(view, controller, new { Area = areaName })"</text>
@Html.Raw("class= 'list-group-item'");
}
><span class="@glyphicon"></span> @MenuItemName <span class="badge" data-val="0" style="display:none">@badge</span>
</a>
}
}
Ясно, что не все это будет применяться к каждому сценарию, но это может быть использовано в качестве ссылки. Важной частью является просто знание текущего активного пункта меню и установка его href = "#", однако вам нужно это сделать.
Сообщите нам, пожалуйста, код. –
Это общий вопрос, мне нужно реализовать эту функцию: Если у вас есть Главная и О нас в навигации, и вы нажимаете «Домой», вы получите домашнюю страницу, но в следующий раз, когда вы нажмете на нее, и вы не наденете, t хочет, чтобы он отправил другой запрос на сервер. Знаете ли вы, где я могу найти учебники для такой вещи? –
Именно поэтому я правильно понимаю, если вы находитесь на домашней странице (например) и нажимаете ссылку на главную страницу, вы не хотите, чтобы страница обновлялась, не так ли? Если это так, у вас есть несколько вариантов. Можно было бы обернуть этот Html.Link в оператор «if» и визуализировать метку вместо ссылки, если на той же странице. Другой динамически добавляет «#» в качестве URL вместо реального URL. Я не знаю о «встроенном» способе сделать это, однако вам нужно перевернуть свой собственный метод. –