跨页面更改所选菜单项类
Changing the selected Menu items class across pages
本文关键字:菜单项 更新时间:2023-09-26
对于我的网站项目,我使用ASP。. NET MVC"剃刀"。边走边学
我的网站上有5或6个页面,其中一个页面在另一个网站上。我想让用户觉得他们使用的是同一个网站。
页面有一个典型的HTML菜单,它遵循使用XHTML无序列表和CSS进行布局的标准模式:
<ul id="menu">
<li class="selected"><a href="@Href("~/")">Home</a></li>
<li><a href="http://ceklog.kindel.com">cek.log</a></li>
<li><a href="@Href("~/Services")">Services</a></li>
<li><a href="@Href("~/Charlie")">Charlie's Stuff</a></li>
<li><a href="@Href("~/Contact.cshtml")">Contact</a></li>
</ul>
在SO的其他地方,我发现了类似于我的问题,人们想要跟踪所选菜单项,但在动态页面中。例如:
修改选中的菜单项class但这种方法在我的情况下不起作用,因为在我的情况下,用户不是改变一个页面上的选择,而是完全导航到另一个页面。
如何做到这一点?
…我想明白了
我使用Razor在服务器端实现这个。
首先,我在_SiteLayout.cshtml
页面(所有页面使用的模板)上实现了一个函数:
@functions {
public string Selected(string PageTitle) {
if (Page.Title == PageTitle)
return "selected";
else
return "";
}
}
然后我在列表中使用了这个函数:
<ul id="menu">
<li class="@Selected("Home")"><a href="@Href("~/")">Home</a></li>
<li class="@Selected("cek.log")"><a href="http://ceklog.kindel.com">cek.log</a></li>
<li class="@Selected("Services")"><a href="@Href("~/Services")">Services</a></li>
<li class="@Selected("Charlie's Stuff")"><a href="@Href("~/Charlie")">Charlie's Stuff</a></li>
<li class="@Selected("Contact")"><a href="@Href("~/Contact.cshtml")">Contact</a></li>
</ul>
完美工作。在我的外部页面,我只是手工编码,因为它是基于Wordpress而不是Razor。
相关文章:
- 显示菜单项
- 如何定义和渲染子菜单项,使用Aurelia's路由器
- 如何在没有2个项目的情况下更改菜单项href
- JQuery超级菜单全宽菜单项
- jQuery在部分上滚动时突出显示菜单项
- 突出显示菜单项及其子菜单项
- 突出显示菜单栏上的活动菜单项
- 可访问的更改菜单项,用于使用不引人注目的JS进行导航,而不是jQuery,
- 可访问性:为什么 Jquery 菜单明确将菜单项 tabindex 设置为 -1
- 当我选择菜单项时,如何播放html5播放器的视频
- 什么脚本隐藏父菜单项
- 如何在两种条件下显示相同的上下文菜单项
- 使用粘性滚动菜单链接打开手风琴式菜单项
- 使用CSS/JavaScript在活动页面上突出显示活动导航菜单项,无id
- 单击后要显示相关的菜单项
- 如何在浏览器中禁用或删除粘贴上下文菜单项
- 使用jquery突出显示下一个菜单项
- 在具有固定菜单的单页网站中定位当前菜单项
- 什么是“已弃用.相反,使用可组合性“的意思在Reactjs Material-UI菜单项中
- jQuery 函数 .prepend() 不适用于 WordPress 导航菜单项