2011-08-10 35 views
5

我很困惑,如何落實在我目前的foreach如下: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> 
} 

使post.Username就不會顯示@post.anonTRUE(所以它會說「匿名」)

在此先感謝您的任何建議/幫助/建議。

+1

'Model。「table」'? –

+2

它有一個愚蠢的名字,我不想讓自己難堪:) – Amy

回答

8

您應該能夠做一些沿着線:

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

雖然我認爲這樣做最該邏輯在C#中,而不是把它留給視圖(因此,創建與所有已經完成的邏輯的特定視圖模型。中號需要整理你可以通過循環,並沒有做任何額外的考慮:

@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> 
} 

凡在上面的例子中@ post.Poster如果需要它已經與匿名預設。

+0

我真的不喜歡把邏輯放在視圖中,所以我會接受你的建議,非常感謝你! – Amy

0

試試這個:

@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.Anon ==真正的 「無名氏」:post.Post_Desc)

+0

它不工作,但我不知道它試圖做什麼。非常感謝! – Amy

+0

爲什麼post.Anon ==爲真,你可以縮短爲:post.Anon? – lahsrah

+0

是的,你可以。只是post.Anon就足夠了。這是個人選擇。我喜歡爲了可讀性而明確地寫入== true。 –