2016-10-29 7 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

あなたのコードから少し不明です。これからの出力をctingする。あなたは値と期待される出力の簡単な例を与えることができます –

+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

    関連する問題