我正在寻找一种方法来根据特定条件在控制器中更改ActionLink的类(在模型中找不到,所以我不能在视图本身中编写条件)。但我似乎无法找到允许我使用此元素工作的ViewData(“名称”)(我认为这是可能的,但我遗漏了一些东西)。
我的视图中有一个html帮助器
<%=Html.ActionLink("View", "Index", "Home")%>
但在我的控制器中我不知道如何引用它,如下所示添加类或onclick等属性。
ViewData("View").attributes.add("class", "active")
答案 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>