2011-08-10 21 views
5

Estoy confundido en cuanto a la forma de aplicar la siguiente en mi actual del 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> 
} 

modo que post.Username no se mostrará si es @post.anonTRUE (y por lo que lo hará decir "Anónimo")

Gracias de antemano por cualquier consejo/ayuda/sugerencias.

+1

'Model." Table "'? –

+2

tiene un nombre estúpido y no quería avergonzarme :) – Amy

Respuesta

8

usted debería ser capaz de hacer algo a lo largo de las líneas de:

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

Aunque yo consideraría hacer la mayor parte de esta lógica en el C#, en lugar de dejarlo a la vista (por lo tanto, la creación de un modelo de vista específico con toda la lógica ya realizado. METRO eaning sólo puede recorrer y no tener que hacer ningún pensamiento adicional:

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

Dónde @ post.Poster en el ejemplo anterior ya está configurado con el anonimato si así se requiere.

+0

No me gusta poner la lógica en la vista, así que tomaré su consejo, ¡muchas gracias! – Amy

0

Prueba esto:

@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: Lo siento, la línea debería haber dicho: @ (post.Anon == true "Anónimo":? Post.Post_Desc)

+0

No está funcionando, pero no entiendo lo que está tratando de hacer. Muchas gracias! – Amy

+0

¿Por qué publicar.Anon == cierto?, Puede acortarlo a: publicar.Anon? – lahsrah

+0

Sí, puedes. Solo publique. Anthony sería suficiente. Es una elección personal. Me gusta poner == verdadero explícitamente para la legibilidad. –