2014-03-03 41 views
2

我想創建一個表,使用帶有列表中的n個元素的foreach,只有2列,然後添加一行。剃刀語法錯誤

我有這段代碼,但找不到正確的剃刀語法,它的唯一工作方式是刪除if,結尾爲<tr>

我希望有人能幫助我。

<table style="width: 100%"> 
    @{ 
     var vehiclesData = (IEnumerable<JMCapitalSeguros_Model.Entities.VehicleTable>)ViewData["Vehicles"]; 
     foreach (var vehicle in vehiclesData.Select((o, i) => new { Vehicle = o, Index = i })) 
     { 
      bool row = vehicle.Index % 2 == 0; 
      if(row){ 
       <text> 
        <tr> 
       </text> 
      } 

      <td width="50%"> 
       <label class="none"> 
        @Html.RadioButtonFor(m => m.IdVehicleTable, vehicle.Vehicle.IdVehicleTable)@vehicle.Vehicle.Alias</label> 
      </td> 

      if(row) 
      { 
       <text> 
        </tr> 
       </text> 
      } 

     } 
    } 
</table> 
+0

您有條件地在row = true上創建標記。由於沒有其他語句,打開的標記在row = false時不會創建。 – Botonomous

回答

2

試試這個

@:將輸出下面的HTML內容

@讓編譯器要考慮以下塊爲C#。 Html將被正確輸出,因爲它會識別爲html

<table style="width: 100%"> 
    @{ 
     var vehiclesData = (IEnumerable<JMCapitalSeguros_Model.Entities.VehicleTable>)ViewData["Vehicles"]; 
    } 
    @foreach (var vehicle in vehiclesData.Select((o, i) => new { Vehicle = o, Index = i })) { 
     bool row = vehicle.Index % 2 == 0; 
     if(row){ 
      @:<tr> 
     } 

     <td width="50%"> 
      <label class="none">@Html.RadioButtonFor(m => m.IdVehicleTable, vehicle.Vehicle.IdVehicleTable)@vehicle.Vehicle.Alias</label> 
     </td> 

     if(row){ 
      @:</tr> 
     } 
     } 
+1

沒有真正解釋你在這裏做了什麼.... – Botonomous