2011-08-10 40 views
5

Tôi đang bối rối như thế nào để thực hiện những điều sau đây trong foreach hiện tại của tôi: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 sẽ không hiển thị nếu @post.anonTRUE (và do đó nó sẽ nói "Chưa xác định")

Cảm ơn trước vì bất kỳ lời khuyên/trợ giúp/đề xuất nào.

+1

'Mô hình' "bảng" '? –

+2

nó có một tên ngu ngốc và tôi không muốn xấu hổ bản thân mình :) – Amy

Trả lời

8

Bạn sẽ có thể làm điều gì đó dọc theo dòng:

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

Mặc dù tôi sẽ xem xét làm hầu hết các logic này trong C#, chứ không phải rời khỏi nó để xem (do đó, tạo ra một mô hình xem cụ thể với tất cả các logic đã được thực hiện. M eaning bạn chỉ có thể lặp lại và không phải thực hiện thêm bất kỳ suy nghĩ nào:

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

Trường hợp @ post.Poster trong ví dụ trên đã được đặt trước với ẩn danh nếu được yêu cầu.

+0

Tôi không thực sự muốn đặt logic trong quan điểm, vì vậy tôi sẽ đưa lời khuyên của bạn, cảm ơn bạn rất nhiều! – Amy

0

Hãy thử điều này:

@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: Xin lỗi, dòng nên nói: @ (post.Anon == true "Anonymous": post.Post_Desc)

+0

Nó không hoạt động nhưng tôi không hiểu những gì nó đang cố gắng để làm. Cảm ơn bạn rất nhiều! – Amy

+0

Tại sao post.Anon == true ?, bạn có thể rút ngắn điều đó thành: post.Anon? – lahsrah

+0

Có, bạn có thể. Chỉ cần post.Anon sẽ là đủ. Đó là một lựa chọn cá nhân. Tôi thích đặt == đúng một cách rõ ràng để dễ đọc. –

Các vấn đề liên quan