2011-08-10 11 views
5

jestem mylić co do sposobu realizacji następujących w moim obecnym 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> 
} 

tak że post.Username nie będą wyświetlane, jeśli @post.anon jest TRUE (i tak, że będzie powiedz "Anonimowy")

Z góry dziękuję za porady/pomoc/sugestie.

+1

'Model." Tabela "'? –

+2

ma głupie imię i nie chciałem się zawstydzać :) – Amy

Odpowiedz

8

powinny mieć możliwość zrobić coś wzdłuż linii:

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

Choć uważam robi większość tej logiki w C#, zamiast pozostawiać go do widoku (dlatego, tworząc specyficzny model widok z wszystkich logiki już zrobione. M eaning można po prostu pętli i nie trzeba robić żadnych dodatkowych myślenia:

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

Gdzie @ post.Poster w powyższym przykładzie jest już wstępnie z anonimowym, jeśli jest to konieczne.

+0

Naprawdę nie lubię logiki w widoku, więc wezmę twoją radę, dziękuję bardzo! – Amy

0

Spróbuj tego:

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

EDIT: Niestety, linia powinna mieć powiedział: @ (post.Anon == true "anonimowy": post.Post_Desc)

+0

To nie działa, ale nie rozumiem, co próbuje zrobić. Dziękuję bardzo! – Amy

+0

Dlaczego post.Anon == true?, Możesz skrócić to do: post.Anon? – lahsrah

+0

Tak, możesz. Po prostu post. Anon wystarczy. To osobisty wybór. Chciałbym wstawić == true jawnie dla czytelności. –