Asp.net 如何显示从模板构建的网站上选择的选项卡?
当您单击stackoverflow顶部的问题、标记、用户等时,您正在查看的问题将变为高亮显示的橙色。这(通常)是通过将其中一个的css更改为“选定”来完成的 如果您有一个构建所有页面的模板,并且该模板在顶部包含这些按钮,如何根据您正在查看的页面突出显示其中一个按钮 问题是你会有一个模板,而不是每个页面一个。。。想法Asp.net 如何显示从模板构建的网站上选择的选项卡?,asp.net,asp.net-mvc,css,Asp.net,Asp.net Mvc,Css,当您单击stackoverflow顶部的问题、标记、用户等时,您正在查看的问题将变为高亮显示的橙色。这(通常)是通过将其中一个的css更改为“选定”来完成的 如果您有一个构建所有页面的模板,并且该模板在顶部包含这些按钮,如何根据您正在查看的页面突出显示其中一个按钮 问题是你会有一个模板,而不是每个页面一个。。。想法 (如果有必要,我正在使用ASP.NET MVC 2并设置母版页)通过检查您所在的位置动态添加一个类。在rails中,我通常根据控制器添加一个“选定”类,例如,如果我在问题控制器中,我
(如果有必要,我正在使用ASP.NET MVC 2并设置母版页)通过检查您所在的位置动态添加一个类。在rails中,我通常根据控制器添加一个“选定”类,例如,如果我在问题控制器中,我应该在问题选项卡中添加一个选定类。我不确定asp.net(如何检查控制器或在站点中的位置),但这是总体思路 通过检查您所在的位置动态添加类。在rails中,我通常根据控制器添加一个“选定”类,例如,如果我在问题控制器中,我应该在问题选项卡中添加一个选定类。我不确定asp.net(如何检查控制器或在站点中的位置),但这是总体思路 有多种方法可以做到这一点,具体取决于您可以对HTML代码进行多少更改 在最好的情况下,但对于大多数HTML操作,您应该将链接包装在一个强标记中。是否用强标记包装锚点或用强标记替换锚点取决于您*,但强标记为链接添加了类属性没有的语义含义,这意味着原始HTML仍然显示当前链接高亮显示。不过,要以编程方式实现这一效果,您需要很多IF语句或类似的逻辑
<li><a href="...">Home</a></li>
<li><strong>News</strong></li>
<li><a href="...">About</a></li>
新闻
在最坏的情况下,通过最少的HTML操作,向每个LI添加一个类,然后更改一个body类,将允许您控制单个导航元素的外观。这很简单,但HTML中缺少任何语义结构
<style type="text/css">
.in-news .nav-news { font-weight: 600; }
</style>
<body class="in-news">
...
<ul>
<li class="nav-home"><a href="...">Home</a></li>
<li class="nav-news"><a href="...">News</a></li>
<li class="nav-about"><a href="...">About</a></li>
</ul>
.in news.nav news{font-weight:600;}
...
[*]对于一个页面是否应该在站点导航中链接到自身,有很多意见。这两种情况都有很多主观原因。我将把这留给您……有多种方法可以做到这一点,具体取决于您可以对HTML代码进行多少更改 在最好的情况下,但对于大多数HTML操作,您应该将链接包装在一个强标记中。是否用强标记包装锚点或用强标记替换锚点取决于您*,但强标记为链接添加了类属性没有的语义含义,这意味着原始HTML仍然显示当前链接高亮显示。不过,要以编程方式实现这一效果,您需要很多IF语句或类似的逻辑
<li><a href="...">Home</a></li>
<li><strong>News</strong></li>
<li><a href="...">About</a></li>
新闻
在最坏的情况下,通过最少的HTML操作,向每个LI添加一个类,然后更改一个body类,将允许您控制单个导航元素的外观。这很简单,但HTML中缺少任何语义结构
<style type="text/css">
.in-news .nav-news { font-weight: 600; }
</style>
<body class="in-news">
...
<ul>
<li class="nav-home"><a href="...">Home</a></li>
<li class="nav-news"><a href="...">News</a></li>
<li class="nav-about"><a href="...">About</a></li>
</ul>
.in news.nav news{font-weight:600;}
...
[*]对于一个页面是否应该在站点导航中链接到自身,有很多意见。这两种情况都有很多主观原因。我将把这个问题留给你……这是一个很好的问题。我记得在ASP.NET中必须这样做,但我还没有考虑过在ASP.NETMVC中这样做 对于ASP.NET MVC,您可以创建一个用户控件,但我喜欢
HTMLHelper
扩展方法的想法。从上面看贝塞库的想法,这将是你控制的最终结果。该方法将接受一组元素,然后从这些元素中可以确定所选页面
MenuTab
对象System.Web.MVC.HtmlHelper
扩展,该扩展以MenuTab
的集合作为参数,例如公共静态MvcHtmlString选项卡菜单(此HtmlHelper,IEnumerable MenuTab)
。请注意MvcHtmlString
的返回类型,因此它同时适用于response.write和html.encodeHtmlHelper
查看当前控制器和操作的页面是否与传入的菜单选项卡的控制器和操作名称匹配,如果匹配,构建一个ActionLink
,该链接将html类属性设置为选定项的css类
在我正在使用的一个页面中,我另外传递了一个id参数,这样我就可以在同一个页面上有多个菜单(think side和top navigation)。这是一个很好的问题。我记得在ASP.NET中必须这样做,但我还没有考虑过在ASP.NETMVC中这样做 对于ASP.NET MVC,您可以创建一个用户控件,但我喜欢
HTMLHelper
扩展方法的想法。从上面看贝塞库的想法,这将是你控制的最终结果。该方法将接受一组元素,然后从这些元素中可以确定所选页面
MenuTab
对象System.Web.MVC.HtmlHelper
扩展,该扩展接受<