MVC에서 HTML.ActionLink 클래스를 동적으로 변경하는 방법
-
11-09-2019 - |
문제
특정 기준을 기반으로 컨트롤러에서 ActionLink 클래스를 변경하는 방법을 찾고 있습니다 (모델에서 찾을 수 없으므로보기 자체에서 조건부를 쓸 수 없습니다). 그러나 나는이 요소와 함께 일할 수있는 ViewData ( "name")를 찾을 수없는 것 같습니다 (이것이 가능하다고 생각하지만 뭔가 빠진 것입니다).
내 관점에서 그렇게 html 헬퍼가 있습니다.
<%=Html.ActionLink("View", "Index", "Home")%>
그러나 내 컨트롤러에서는 클래스 또는 OnClick과 같은 속성을 추가하기 위해 아래를 참조하는 방법을 잘 모르겠습니다.
ViewData("View").attributes.add("class", "active")
해결책
컨트롤러에서 CSS 속성을 설정하지 않으므로 View의 관심사이므로 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>
다른 팁
안에 면도칼 보기 당신은 다음과 같은 일을 할 수 있습니다.
@model AssessmentQuestionViewModel
@{var newClass = Model.AnswerValue == 0 ? "not-answered" : string.Empty;}
<a href="@Url.Action("Index", "Home")" class="wizard-step @newClass">View Question</a>
제휴하지 않습니다 StackOverflow