2013-08-11 33 views
13

Tôi muốn tạo lưới khởi động với lớp dòng chất lỏng. Nó là cần phải tách tất cả div lồng nhau với lớp span4 thành các khối. Vì vậy, tôi muốn có html như thế này:Kết hợp mã html và mã trong foreach trong dao cạo

<div class="row-fluid"> 
     <div class="span4"></div> 
     <div class="span4"></div> 
     <div class="span4"></div> 
    </div> 
    <div class="row-fluid"> 
     <div class="span4"></div> 
     <div class="span4"></div> 
     <div class="span4"></div> 
    </div> 

Và tôi có mã trong dao cạo

@{ 
int counter = 3; 
} 
@foreach (var config in Model) 
{ 
    @if (counter == 3) 
    { 
     <div class="row-fluid"> 
     @counter = 0; 
    } 
    @Html.Partial("_ConfigBar", config) 

    @if (counter == 2) 
    { 
     </div> 
    } 
    @{counter++;} 
} 

Nhìn ra một khoảng chỉ cần đặt div với lớp span4, và có gì thú vị.

Nhưng nó không hoạt động. Bất cứ ai có thể chỉ cho tôi những gì là sai?

+0

Đầu ra html là gì? Ngoài ra, loại 'Model' của bạn là gì? – haim770

+1

Tôi nghĩ rằng đó không phải là loại mô hình quan trọng. Tuy nhiên đó là @model IEnumerable . Và lỗi là khối foreach không có biểu tượng "}". – Max

Trả lời

24

Something như thế này nên tạo ra những gì bạn cần:

@{ 
    int counter = 0; 
    foreach (var config in Model) 
    { 
     if (counter == 0) 
     { 
      @Html.Raw("<div class=\"row-fluid\">") 
     } 
     else if (counter > 0 && counter % 3 == 0) 
     { 
      @Html.Raw("</div><div class=\"row-fluid\">") 
     } 

     @Html.Partial("_ConfigBar", config) 

     counter++; 
    } 

    @Html.Raw("</div>") 
} 

này sẽ:

  • tạo một div khai mạc vào vòng đầu tiên
  • đóng mở hiện div và mở một div mới trên mỗi vòng lặp thứ 4
  • thêm div đóng khi vòng lặp hoàn tất.
+1

Tại sao 'Html.Raw()'? Razor cho phép bạn trộn các khối mã với các khối HTML một cách dễ dàng mà không có hàm Raw(). bạn chỉ cần nó khi bạn rõ ràng muốn vô hiệu hóa mã hóa html trên giá trị. – haim770

+1

Bởi vì dao cạo sẽ phàn nàn về nhiều thẻ mở/đóng trong câu lệnh 'if' – Digbyswift

+1

Cảm ơn bạn đã chỉnh sửa Max, vị trí tốt. – Digbyswift

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