Задача динамического URL-адреса на основе действий c # mvc - PullRequest
0 голосов
/ 30 августа 2010

У меня проблемы с реализацией динамической системы меню на основе действий в PartialView, как показано ниже:

<ul class="tabs">
    <li <% if (ViewContext.RouteData.Values["Action"] == "Index"){ %>class="active"<% } %>><a href="/talent">Home</a></li>
    <li <% if (ViewContext.RouteData.Values["Action"] == "account"){ %>class="active"<% } %>><a href="/talent/account">Account settings</a></li>
    <li <% if (ViewContext.RouteData.Values["Action"] == "password"){ %>class="active"<% } %>><a href="/talent/password">Password settings</a></li>
    <li <% if (ViewContext.RouteData.Values["Action"] == "profile"){ %>class="active"<% } %>><a href="/talent/profile">Edit profile</a></li>
    <li <% if (ViewContext.RouteData.Values["Action"] == "messages"){ %>class="active"<% } %>><a href="/talent/messages">Messages</a></li>
    <li id="logout"><a href="/logout">Logout</a></li>
</ul>

Проблема в том, что работает только пункт меню «Индекс», где отображается класс CSSв разметке HTML.Другие не очень-то странно.Есть идеи ??

Ответы [ 2 ]

1 голос
/ 30 августа 2010
<% string action = ViewContext.RouteData.Values["Action"].ToString().ToLower(); %>

<ul class="tabs">
    <li <% if (action == "index"){ %>class="active"<% } %>><a href="/talent">Home</a></li>
    <li <% if (action == "account"){ %>class="active"<% } %>><a href="/talent/account">Account settings</a></li>
    <li <% if (action == "password"){ %>class="active"<% } %>><a href="/talent/password">Password settings</a></li>
    <li <% if (action == "profile"){ %>class="active"<% } %>><a href="/talent/profile">Edit profile</a></li>
    <li <% if (action == "messages"){ %>class="active"<% } %>><a href="/talent/messages">Messages</a></li>
    <li id="logout"><a href="/logout">Logout</a></li>
</ul>
1 голос
/ 30 августа 2010

Все методы действия, кроме индекса, указаны в нижнем регистре.Используйте сравнение без учета регистра вместо "=="

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...