2016-06-23 3 views
0

mvc 5 응용 프로그램을 사용 중입니다. html로 표시되는 데이터베이스의 이름 목록이 있습니다. 알파벳순으로 html.actionlink을 사용하여 A, B, C, D ...Z을 필터링합니다. 각각 html.actionlink을 통해 Id 매개 변수로 각 문자를 전달한 다음 내 컨트롤러에서 어떤 이름이 .ToList()을 사용하여 반환되는지 확인합니다. .Where()을 찾아 내 이름의 첫 글자가 Id 매개 변수와 일치합니다.컨트롤러를 통해 html 요소에 클래스를 추가하려면 어떻게해야합니까?

모두 잘 작동합니다. 지금해야 할 일은 특정 문자로 시작하는 이름이 없으면 해당 문자가보기에서 회색으로 표시되어야한다는 것입니다.

컨트롤러를 통해 html 요소에 클래스를 추가하려면 어떻게해야합니까? 특정 문자가 포함 된 이름이 없으면 내 HTML 링크에 color: grey의 CSS 클래스가 있어야합니다. 데이터베이스가 관리자에 의해 채워지기 때문에 어떤 이름이 올지 알 수 없습니다.

답변

0

하지 난 당신의 문제의 디자인 흐름을 따라야하지만,이 코드가 도움이 될 수 있습니다 내 생각도해야합니다.

@if(model.Names.Where(x => x.StartsWith("L").Count() != 0) 
{ 
    @Html.ActionLink("L", "{Controller}", "{Action}", null, new {} { @class = "{NOT GRAY}"}) 
} 
@else 
{ 
    @Html.ActionLink("L", "{Controller}", "{Action}", null, new {} { @class = "grayed"}) 
} 

기본적으로, 당신은 면도기 구문의 IF 문을 작성하고 다음 확인 및 수신 데이터가 카운트를하고 다음 각 경우에 다른 요소를 스타일링하여 비어있는 경우 볼 수 있습니다.

모델에 어떤 이름을 사용하고 있는지 알 수 없기 때문에 회색으로 표시되지 않은 요소, 컨트롤러 이름, 동작 이름에 어떤 클래스를 적용했는지 알 수 있으므로 작동하려면이 코드를 편집해야합니다.

+0

, 내가 그것을 수정해야합니다

.yourClassName { color:grey; } 

이 클래스를 적용? – vivek

+0

물론 문제 없습니다! 나는 그것이 작동하는지 확인하지 않고 브라우저에 그것을 썼다. 불행히도 내 작업 컴퓨터에는 Visual Studio가 없습니다! –

0

ActionLink 함수를 사용하면 Html 속성에 해당하는 항목이있는 익명 개체를 전달할 수 있습니다.

ActionLink 함수에서 htmlAttributes라는 객체 유형의 매개 변수를 확인하십시오. 여기

는 예를 들어 (가 키워드이기 때문에 그 클래스는 @로 시작되는 주)입니다 :

@Html.ActionLink(
     "Portfolio", 
     "Index", 
     "Portfolio", 
     routeValues: null, 
     htmlAttributes: new { @class = "grayed" } 
) 
1

CSS 클래스를 정의하고 HTML 도우미에서 클래스를 적용 할 수 있습니다. 이처럼 :

이 코드는 약간의 오차가
@Html.ActionLink("Name", "{Controller}", null,new { @class ="yourClassName" }) 
+0

이것은 결코 작동하지 않고 경로 값을 엉망으로 만듭니다. 'new' 키워드 앞에'null '을 추가하십시오. – vivek

관련 문제