【问题标题】:Conditionally adding class based on route基于路由有条件地添加类
【发布时间】:2013-09-09 20:49:25
【问题描述】:

我的网站有不同的部分。假设一个叫做 Accounts。

Accounts 有一个子导航链接列表。每个子导航链接在 Accounts 视图文件夹下都有自己的视图(Views/Accounts/Subnav1、Views/Accounts/Subnav2 等)。我需要将 Account 子导航 HTML 代码存储在一个位置,并让它有条件地将“selected”类添加到 HTML 代码中的适当标记中。

我不知道这是否最好通过拥有一个帐户嵌套母版页(具有帐户子导航)或通过创建一个帐户子导航部分来实现。无论哪种方式,我都需要弄清楚通常如何做到这一点。

这是我在想的一些伪代码:

帐户子导航嵌套母版页/部分:

<ol>
    <li <% if (action.Equals("Subnav1")) { %><%: class="selected" %><% } %>>Subnav 1</li>
    <li <% if (action.Equals("Subnav2")) { %><%: class="selected" %><% } %>>Subnav 2</li>
</ol>

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 master-pages


    【解决方案1】:
    <ol>
        <% string action = ViewContext.Controller.ValueProvider.GetValue("action").RawValue; %>
        <li <% if (action.Equals("Subnav1", StringComparison.OrdinalIgnoreCase)) { %><%: class="selected" %><% } %>>Subnav 1</li>
        <li <% if (action.Equals("Subnav2", StringComparison.OrdinalIgnoreCase)) { %><%: class="selected" %><% } %>>Subnav 2</li>
    </ol>
    

    【讨论】:

    • 感谢您的快速响应。您会建议使用部分或嵌套母版页来完成此操作吗?
    • @tau 如果数量太多,我可能会将 li 放入部分视图中。
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2020-01-12
    相关资源
    最近更新 更多