나는 화면에 몇백 가지 속성을 출력해야하는 프로젝트에서 작업 중입니다. 많은 지루한 마크 업을 절약하기 위해 리플렉션을 사용하기로 결정했습니다.모델 속성 리플렉션을 사용하여 표시 이름
//markup removed to keep this concise
@for (var i = 0; i < Model.SiteAndJobDetails.GetType().GetProperties().Count(); i++)
{
@Model.SiteAndJobDetails.GetType().GetProperties()[i].Name
@Model.SiteAndJobDetails.GetType().GetProperties()[i].GetValue(Model.SiteAndJobDetails, null)
}
렌더링 속도가 느리지 만 HTML 도우미로 약 200 개의 속성 및 값을 쓸 수 없게됩니다. 적어도 그것은 계획이었습니다. 그러나 @Html.DisplayNameFor
또는 비슷한 속성을 사용하여 Display
속성 값을 가져와야합니다.
내 intial 생각은
@Html.DisplayNameFor(m=>@Model.SiteAndJobDetails.GetType().GetProperties()[i].Name)
을했다하지만 내가 속성 이름을 얻기 위해 여기 반사를 사용하고 있기 때문에이 상상하는 것, 작동하지 않습니다. 다른 방법이 있습니까?
올바른 방향으로 나를 안내해 주셔서 감사합니다. 귀하의 구문이 약간 떨어져서 나는 미래의 검색자를위한 대답을 편집 할 것입니다. 편집이 수락되면 동의 할 것입니다. 도와 주셔서 대단히 감사합니다. – James
@James, 편집이 거부되었습니다. 솔루션을 원래 게시물의 답 또는 편집으로 추가하는 것을 고려하십시오. –
괜찮습니다. 도움을 받으십시오. 고마워. – James