无需JavaScript即可访问布局元素

时间:2014-06-08 03:10:33

标签: asp.net asp.net-mvc asp.net-mvc-5

调用@Renderbody()方法的布局页面有一个导航栏,我想在表示用户当前所在页面的按钮上添加橙色边框。我能想到的唯一方法就是在每个页面的按钮上添加一个类(.current或者其他东西),但由于这些元素存在于_layout页面中,所以我不能每页更改它们。使用JavaScript很容易,但有没有办法严格使用HTML和CSS?

1 个答案:

答案 0 :(得分:0)

仅仅因为他们在_Layout中创建菜单并不意味着它无法逐页更改。在渲染_Layout时,您仍然可以访问所有常用的管道组件。我可以想到你可以使用的两种方法,不确定我喜欢哪种方式,或者我是否真的喜欢它们中的任何一种,但它们应该向你展示事情是可能的,也许你可以想到一种更清洁的方法来实现它或其他人可以想出一个更好的方法。

  1. 您可以在您的操作中(或作为基本控制器的一部分或为每个操作运行的一些通用代码)将某些内容加载到ViewData对象中,然后可以在_Layout中将其捕获并用于添加类到相关按钮。

  2. 您可以在_Layout中查询Route对象,找出您当前正在查看的页面,并使用该页面将该类添加到相关按钮。

  3. 希望这有帮助。

    干杯迈克