Pergunta

Eu estou procurando uma maneira de alterar a classe de um ActionLink no controlador com base em critérios específicos (não encontrada no modelo, então não posso escrever uma condicional na própria vista). Mas eu não consigo encontrar o ViewData ( "nome") que me permite trabalhar w / este elemento (eu assumo isso é possível, mas eu estou faltando alguma coisa).

Eu tenho um html helper como assim na minha opinião

<%=Html.ActionLink("View", "Index", "Home")%>

Mas no meu controlador eu não tenho certeza de como fazer referência a isso, como o abaixo para adicionar um atributo como classe ou onclick.

ViewData("View").attributes.add("class", "active")
Foi útil?

Solução

atributos

Você não definir CSS a partir do controlador já que é uma preocupação do ponto de vista. Você pode adicionar atributos HTML para o ActionLink assim:

 <%=Html.ActionLink("View Cases", "Index", "Home", new { @class="active" })%>

Como alternativa, você pode construir suas âncoras "manualmente":

 <a href="<%=Url.Action("Index", "Home")%>" class="active">View Cases</a>

Ou se você precisa condicionalmente definir a classe ativa:

 <% var activeClass = someCondition ? "active" : ""; %>
 <a href="<%=Url.Action("Index", "Home")%>" class="<%=activeClass%>">View Cases</a>

Outras dicas

Em um Navalha ver que puder fazer algo como isto:

@model AssessmentQuestionViewModel

@{var newClass = Model.AnswerValue == 0 ? "not-answered" : string.Empty;}

<a href="@Url.Action("Index", "Home")" class="wizard-step @newClass">View Question</a>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top