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

发布于 2024-07-23 08:52:10 字数 364 浏览 6 评论 0原文

我正在寻找一种方法来根据特定标准更改控制器中 ActionLink 的类(在模型中找不到,因此我无法在视图本身中编写条件)。 但我似乎找不到允许我使用此元素的 ViewData("name") (我认为这是可能的,但我错过了一些东西)。

在我看来,我有一个像这样的 html 助手,

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

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

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

I'm looking for a way to alter the class of an ActionLink in the controller based on specific criteria (not found in the model so I can't write a conditional in the view itself). But i can't seem to find the ViewData("name") that allows me to work w/ this element (I assume this is possible, but I'm missing something).

I have an html helper like so in my view

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

But in my controller I'm not sure how to reference this, like the below to add an attribute like class or onclick.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

错爱 2024-07-30 08:52:10

您不需要从控制器设置 CSS 属性,因为这是视图的问题。 您可以向 ActionLink 添加 HTML 属性,如下所示:

 <%=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>

You don't set CSS attributes from the controller since that's a concern of the view. You can add HTML attributes to the ActionLink like this:

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

Alternately you can build your anchors "manually":

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

Or if you need to conditionally set the active class:

 <% var activeClass = someCondition ? "active" : ""; %>
 <a href="<%=Url.Action("Index", "Home")%>" class="<%=activeClass%>">View Cases</a>
疯到世界奔溃 2024-07-30 08:52:10

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>

In a Razor view you can do something like this:

@model AssessmentQuestionViewModel

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

<a href="@Url.Action("Index", "Home")" class="wizard-step @newClass">View Question</a>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文