2012-03-22 2 views
18

부울 속성 IsActive가 있습니다. 보기에는 IsActive를 포함하여 속성이있는 개체 목록이 있습니다. 그러나 목록에서 IsActive는 부울 값이므로 편집 할 수없는 확인란입니다. DisplayFor()를 DisplayTextFor()로 변경하면 확인란 대신 True 또는 False가 표시됩니다. True 및 False를 'Active'및 'Inactive'로 변경하려면 어떻게해야합니까?Html.DisplayFor 부울 체크 박스 변경 MVC

 @Html.DisplayTextFor(modelItem => item.IsActive) 

그리고 나서 당신은 당신의 속성이 표시되는 방법을 포맷 할 수 있도록 표시 템플릿을 사용할 수 있습니다 빨간색

답변

29

에 녹색과 '비활성'에 '활성'스타일을 것입니다.

~/Shared 또는이 템플릿을 사용하는보기가있는보기 폴더에 DisplayTemplates 폴더를 만듭니다.

새 부분보기를이 폴더에 추가하십시오. 원하는 이름을 지정하십시오 (예 : IsActive.cshtml

@model bool 
@if (Model == true) 
{ 
    @Html.Encode("Active") 
} 
@if (Model == false) 
{ 
    @Html.Encode("Inactive") 
} 

는 이제이 화면 템플릿을 사용하는 것이 알려 귀하의 재산에 데이터 주석을 추가 할 수 있습니다.

[UIHint("IsActive")] 
public bool IsActive { get; set; } 

이 주석 어떤 부울에 대한 사용 Html.DisplayFor 그것은 이름이 일치하는 디스플레이 템플릿에 따라 형식이 될 것입니다. 약간의 조정을 통해 디스플레이 템플릿에 색상 변경 스타일을 직접 배치 할 수 있습니다.

@if (item.IsActive) 
{ 
    @string.Format("Active"); 
} 
else 
{ 
    @string.Format("Inactive"); 
} 
+4

'templateName'매개 변수가 'Html.DisplayFor' 인 템플릿을 적용 할 수도 있습니다. – NicolasF

2

이 작업을 시도 할 수 있습니다. 나는 똑같은 문제를 가지고 @(IsFooBar ? "Yes" : "No")으로 해결했다.

2

이것은 오래된 질문이지만,이 사람을 도울 수 있습니다