我有一个Bootstrap按钮组,可用于控制过滤:
<div class="btn-group btn-group" role="group" aria-label="AM/PM">
<a href="/PrivateHires/StateFair?ampm=am" role="button" class="btn btn-default">AM</a>
<a href="/PrivateHires/StateFair?ampm=pm" role="button" class="btn btn-default">PM</a>
</div>
在active
元素的a
中添加class
将使按钮看起来像被选中。
我目前的优雅方法是使用if
语句:
<div class="btn-group btn-group" role="group" aria-label="AM/PM">
@if (ViewData["ampm"].ToString() == "AM")
{
<a href="/FooController/Foo?ampm=am" role="button" class="btn btn-default active">AM</a>
<a href="/FooController/Foo?ampm=pm" role="button" class="btn btn-default">PM</a>
}
else
{
<a href = "/FooController/Foo?ampm=am" role="button" class="btn btn-default">AM</a>
<a href = "/FooController/Foo?ampm=pm" role="button" class="btn btn-default active">PM</a>
}
</div>
我创建了一个函数,但是无法使用a
语法:
public string active(string AmPm)
{
if (ViewData["ampm"].ToString()==AmPm){ return "class='active'"; }
else { return ""; }
}
...
<a href="/FooController/Foo?ampm=am" role="button" class="btn btn-default @ative('AM')">AM</a>
<a href="/FooController/Foo?ampm=pm" role="button" class="btn btn-default @active('PM')">PM</a>
是否有更优雅的方法来设置active
类?通常,是否有更好的方法可基于查询字符串值修改UI元素?
答案 0 :(得分:0)
我修改了功能:
@functions
{
public string ActiveAmPm(string ampm)
{
if (ViewData["ampm"].ToString() == ampm) { return "active"; }
else { return ""; }
}
}
然后引用了它:
<div class="btn-group btn-group" role="group" aria-label="AM/PM">
<a href="/FooController/Foo?ampm=am" role="button" class='btn btn-default @ActiveAmPm("AM")'>AM</a>
<a href="/FooController/Foo?ampm=pm" role="button" class='btn btn-default @ActiveAmPm("PM")'>PM</a>
</div>