Pregunta

Estoy buscando una manera de alterar la clase de un ActionLink en el controlador basado en un criterio específico (ni se recogen en el modelo de modo que no puedo escribir un condicional en la vista en sí). Pero me parece que no puede encontrar el ViewData ( "nombre") que me permite trabajar w / este elemento (supongo que esto es posible, pero me falta algo).

Tengo una ayuda HTML al igual que en mi opinión

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

Pero en mi controlador No estoy seguro de cómo hacer referencia a esto, al igual que el de abajo para agregar un atributo como clase o onclick.

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

Solución

No se establecen atributos CSS desde el controlador ya que es una preocupación de la vista. Puede añadir atributos HTML a la ActionLink como esto:

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

Alternativamente, usted puede construir sus anclas "manual":

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

O si es necesario establecer de forma condicional la clase activa:

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

Otros consejos

En un Razor vista se puede hacer algo como esto:

@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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top