基本上是有用的,我所做的就是創建一個@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 =「#」,但是您需要這樣做。
請向我們顯示您的代碼。 –
這是一個普遍的問題,我需要實現這個功能: 如果你有家庭和關於導航,你點擊家庭,你會得到主頁,但下次你點擊它,你是我不'不希望它向服務器發送另一個請求。 你知道我在哪裏可以找到這樣的教程? –
爲了正確理解,如果您在主頁上(例如)並單擊主頁鏈接,則不希望頁面刷新,對吧?如果是這樣,你有幾個選擇。有人可能會將該Html.Link封裝在'if'語句中,並在同一頁面上呈現標籤而不是鏈接。另一個是動態地添加一個「#」作爲URL而不是真正的URL。我不知道「內置」方式來做到這一點,但您需要推出自己的方法。 –