如何在MVC中动态更改Html.ActionLink的类

时间:2009-06-04 17:32:23

标签: css asp.net-mvc dynamic html-helper actionlink

我正在寻找一种方法来根据特定条件在控制器中更改ActionLink的类(在模型中找不到,所以我不能在视图本身中编写条件)。但我似乎无法找到允许我使用此元素工作的ViewData(“名称”)(我认为这是可能的,但我遗漏了一些东西)。

我的视图中有一个html帮助器

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

但在我的控制器中我不知道如何引用它,如下所示添加类或onclick等属性。

ViewData("View").attributes.add("class", "active")

2 个答案:

答案 0 :(得分:29)

您不从控制器设置CSS属性,因为这是视图的关注点。您可以将HTML属性添加到ActionLink,如下所示:

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

或者,您可以“手动”构建锚点:

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

或者如果您需要有条件地设置活动类:

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

答案 1 :(得分:2)

Razor视图中,您可以执行以下操作:

@model AssessmentQuestionViewModel

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

<a href="@Url.Action("Index", "Home")" class="wizard-step @newClass">View Question</a>