2016-10-29 3 views
0

ASP.NET MVC 5 사이트의 Razor 페이지에서 IEnumerable을 포함하는 복잡한 HTML을 출력해야합니다.C# Razor 페이지 대신 foreach에

중첩 된 for 루프를 사용하여 HTML을 구조화하고 싶습니다. 그러나 모든 개체 출력이 foreach 루프로 묶인 경우에는 불가능합니다. foreach 루프를 사용하는 대신

, 순서대로 다음 개체를 얻을 것 같은 것을 할 수있는 방법이있다 :

if (x = 1) 
{ 
    for (var x=0; x<2; x++) 
    { 
     <div class="row"> 
      for (var n=0; n<4; n++) 
      { 
       <div class="a"> 
        Model.GetNextObject.Name 
       </div> 
      } 
     </div> 
    } 
} 
else 
{ 
    <div class="b"> 
     Model.GetNextObject.Name 
    </div> 
} 

을 많은 경우는,이 ​​훨씬 더 우아한 코드를 허용합니다.

이것이 가능합니까?

+0

코드에서 알 수없는 부분이 있습니다. 이것으로부터의 출력은 ct입니다. 값과 예상되는 결과의 간단한 예제를 줄 수 있습니까? –

+0

"많은 상황에서 훨씬 더 우아한 코드가 허용됩니다." 왜 그렇게 될까? 'for' 루프가 필요한 것은 무엇입니까? – duplode

+0

@duplode 복잡한 HTML 구조를 원한다면 조건 (예 : 부트 스트랩의 행 및 범위/열)을 사용해야합니다. @ : Razor에서 발생하는 오류를 중지하려면 @가 많이 필요합니다. – niico

답변

4

네, 그것은

  1. 이 스택 오버플로 포스트 Using IEnumerable with for loops

    를 참조하십시오 다음 요소

로 이동 GetEnumerator를

  • 전화 MoveNext 메서드를 사용하여 열거에 대한 참조를 가져옵니다 가능합니다
    var enumerator = getInt().GetEnumerator(); 
    while(enumerator.MoveNext()) 
    { 
        var MyObject = enumerator.Current; 
        Console.WriteLine(MyObject.Property); 
    } 
    
  • +0

    고마워요! 미래의 사용자를위한 대답을 개선하기 위해 여기에 코드 샘플을 붙여 넣을 기회가 있습니까? – niico

    +0

    여기에 언급 된 링크에는 샘플 코드가 들어 있습니다. 코드를 복사하여 붙여 넣지 않으므로 코드를 참조합니다. 샘플 코드를 붙여 넣기 시작합니다. – Ramakrishnan

    +0

    외부 참조를 사용하지 않고 코드가 대답과 유사하게 스택 오버 플로우가 발생합니다. 편의상 추측합니다. 나는 여기에 붙여 넣었다. – niico