2010-07-02 5 views
4

asp.net mvc2를 사용하여 웹 개발을 시작했습니다. 내보기에 데이터 컬렉션을 표시하는 방법을 찾으려고합니다. 다음은 콜렉션을 html 테이블로 표시하는 매우 간단한보기 마크 업입니다.asp.net mvc 헤더가있는 테이블에 컬렉션 표시

제 질문은 컬렉션에서 테이블을 만들 때 사람들이 일반적으로하는 일입니다. 열 헤더를 처리하는 방법은 무엇입니까? 모든 개체의 속성에 "DisplayName"특성이 있으며 테이블의 열 머리글로 사용하려고합니다. 당신은 라벨 태그 내에 MyProp1의 표시 이름을 표시하려면

<%: Html.LabelFor(x => x.MyProp1) %> 

을 사용할 수 있습니다

덕분에,

<table> 
    <thead> 
     <tr> 
      <th>???</th> 
      <th>???</th> 
      <th>???</th> 
      <th>???</th> 
      <th>???</th> 
     </tr> 
    </thead> 
    <tbody> 
    <% 
     foreach(var item in Model) 
     { 
    %> 
     <tr> 
      <td><%= Html.Encode(item.MyProp1)%></td> 
      <td><%= Html.Encode(item.MyProp2)%></td> 
      <td><%= Html.Encode(item.MyProp3)%></td> 
      <td><%= Html.Encode(item.MyProp4)%></td> 
      <td><%= Html.Encode(item.MyProp5)%></td> 
     </tr> 
    <% 
     } 
    %> 
    </tbody> 
</table> 

다음과 같은

public class MyClass 
{ 
    [DisplayName("Dif Prop 1")] 
    [DataMember] 
    public string MyProp1{ get; set; } 

    [DisplayName("Dif Prop 2")] 
    [DataMember] 
    public string MyProp2{ get; set; } 

    [DisplayName("Dif Prop 3")] 
    [DataMember] 
    public string MyProp3{ get; set; } 

    [DisplayName("Dif Prop 4")] 
    [DataMember] 
    public string MyProp4{ get; set; } 

    [DisplayName("Dif Prop 5")] 
    [DataMember] 
    public string MyProp5{ get; set; } 
} 

답변

0

처럼 내 클래스보고,

(3210)는 <% 사용 디스플레이 (달리 명시되지 않는 한 일반적으로 일반 텍스트) 템플릿

의에 따라 값을 표시하려면 : <% = %>에 나란히 놓이는으로> 자동으로 결과 MvcString를 인코딩합니다 %를, 어떤 내용을 인코딩하지 않습니다. 그러나이 자동 인코딩은 .NET 4.0 환경으로 제한되며 이전 버전에서는 작동하지 않습니다.

+1

LabelFor의 문제점은 레이블 헤더를 래핑하는 것이고, 이는 테이블 헤더에서 원하는 것이 아닙니다. –

관련 문제