2012-08-03 4 views
1

나는 모델이 같은 클래스가 궁금했다.Array 유형 속성의 MVC 모델 DisplayFormat? 내가 DisplayFor를 사용하여 내보기에서</p> <pre><code>public class Contact { public string Name { get; set; } public string[] Emails { get; set; } } </code></pre> <p>은 모든 이메일을 보여 않도록,하지만 하나의 문자열로 :

@Html.DisplayFor(modelItem => item.Emails) 

존 @ gmail.comjohn @ hotmail.comjohn @ microsoft.com

내가 이메일 속성에 적용 할 수있는 DisplayFormat 속성의 어떤 종류가 있는가, 그래서 하나를 위해 모든 이메일을 표시 할 것

[email protected], [email protected], [email protected]

망가 정말 모델에서 foreach는 (var에 이메일을 사용하려면 : 다음과 같이 쉼표로 구분 문의 .Email).이 간단한 작업에 대한 내 견해.

감사합니다.

+0

시도는 적절한 프로그래밍 언어 태그를 추가. PHP에서는 implode (Emails, ',')와 같은 것을 사용할 것입니다.이 언어는 비슷한 기능을 가지고 있습니다. – Pevara

+0

편집기 템플릿을 만들 수 있습니다. 이것을 확인하십시오 : http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/ –

+0

감사합니다 Andre, 나는 편집자도 너무 귀찮을 것입니다. – monstro

답변

2

어떻게 문자열 배열의 쉼표로 구분 된 버전을 대표하고보기

public class Contact 
{ 
    public string Name { get; set; } 
    public string[] Emails { get; set; } 
    public string EmailsCommaSeperated 
    { 
     get 
     { 
     return String.Join(",",Emails); 
     } 
    } 
} 

에 그것을 사용하고

@Html.DisplayFor(modelItem => item.EmailsCommaSeperated) 
+0

'@Html. DisplayFor (modelItem => String.Join (",", item.Emails))'도 작동합니까? –

+1

@AndreCalil : 그것은 같은 것입니다. 뷰가 ** 많은 기능 호출없이 깨끗하고 읽기 쉬운 **되도록 POCO (ViewModel)에 보관하고 싶습니다. – Shyju

+0

나는 본다. 이 클래스는 간단한 * 뷰 모델 *이 아닌 * 모델 *이므로 뷰 논리를 추가하지 않는 것이 좋습니다. 그러나 사소한 결정입니다. +1 제안 : –

관련 문제

 관련 문제