2011-08-10 6 views
5

私は私の現在のforeachで次のように実装する方法へと混乱しています:@post.anonTRUEである(そしてそれがすることならばpost.Usernameが表示されないようにASP.NET MVC3 C#の - foreachの

@foreach 
(var post in Model."table".Where(w => w.Private_ID == 1).OrderBy(o => o.Date)) 
{ 
    <div class ="post"> 
    <fieldset> 
     <p class="post_details">At @post.Post_Date By @post.Username</p> 
     @post.Post_Desc 
    </fieldset> 
    </div> 
} 

アドバイス/助言/提案をお寄せいただきありがとうございます。

+1

'モデル。"テーブル "? –

+2

それは愚かな名前を持ち、私は自分自身を困らせたくない: – Amy

答えて

8

@foreach(var post in Model."table".Where(w => w.Private_ID == 1).OrderBy(o => o.Date)) 
{ 
    <div class ="post"> 
     <fieldset> 
      <p class="post_details">At @post.Post_Date By (@post.Anon == true ? "Anonymous" : @post.Username)</p> 
      @post.Post_Desc 
     </fieldset> 
    </div> 
} 

編集:申し訳ありませんが、行は言っておく必要があります:@(post.Post_Desc?post.Anon == true "に匿名の")私はすでに完了ロジックのすべてと、特定のビューモデルを作成し、それゆえ(C#でこのロジックのほとんどをやって、というよりも視野にそれを残して検討するものの

@(post.anon ? "Anonymous" : post.Username) 

:の線に沿って何かをします。 M eaningあなただけのループではなく、任意の追加的な思考しなければならないことができます。それが必要な場合は、上記の例の@ post.Posterがすでに匿名でプリセットされ

@foreach(var post in Model.Posts) 
{ 
    <div class ="post"> 
     <fieldset> 
     <p class="post_details">At @post.Post_Date By @post.Poster</p> 
     @post.Post_Desc 
     </fieldset> 
    </div> 
} 

を。

+0

私は実際にはビューにロジックを置くのが好きではないので、私はあなたのアドバイスを取る、ありがとう! – Amy

0

この試してみてください:あなたのことができるようにする必要があり

+0

それは働いていないが、私はそれが何をしようとしているのか理解していない。どうもありがとうございます! – Amy

+0

なぜpost.Anon == true?それを短縮することができます:post.Anon? – lahsrah

+0

はいできます。ちょうどpost.Anonで十分でしょう。それは個人的な選択です。私は可読性のために== trueを明示的に書いています。 –