2016-08-03 5 views
0

私は、Razorビューのforeachループ内にif文を入れようとしていますが、エラーError } expectedが発生し、if文を削除してもエラーは発生しません。MVC if foreach内の文を見る

私は<text></text>のラッピングのような他の同様の質問で言及されたいくつかの異なるオプションを試しましたが、@Html.Rawを使用していますが、文字列変数の値を設定するだけです。

@foreach (var item in Model) 
     { 

      string RowColor = "Standard"; 
      string RowClassName = "row-" + @item.CaseID; 
      int StatusDays = int.Parse(@item.StatusDays); 

      if (@item.Viewings == 0 && StatusDays >= 14) 
      { 
       RowColor = "Red"; 
      } 


     <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/"> 
      <td> 
       @Html.DisplayFor(modelItem => item.CaseID) 
      </td> 
      <td> 
       @item.RegistrationDate.Date.ToString("dd-MMM-yyyy") 
      </td> 
     </tr> 
} 

答えて

5

あなたの問題は、@記号を削除し、ここで

if (@item.Viewings == 0 && StatusDays >= 14) 

です。

if (item.Viewings == 0 && StatusDays >= 14) 
+0

remああ、その後、働いて、ありがとう。 – JBoom

1

この修正されたコード

@{ 
    foreach (var item in Model) 
     { 

      string RowColor = "Standard"; 
      string RowClassName = "row-" + item.CaseID; 
      int StatusDays = int.Parse(item.StatusDays); 

      if (item.Viewings == 0 && StatusDays >= 14) 
      { 
       RowColor = "Red"; 
      } 


     <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/"> 
      <td> 
       Html.DisplayFor(modelItem => item.CaseID) 
      </td> 
      <td> 
       item.RegistrationDate.Date.ToString("dd-MMM-yyyy") 
      </td> 
     </tr> 
     } 
} 
+0

なぜ同じ回答を追加するのですか? –

+0

上記に変更しても、同じエラーです。 – JBoom

+0

@GlennPacker - 回答はあなたと同じではありません。 –

0

かみそりを使用せずに長い時間を試してみて、私は問題はあなたが

string RowClassName = "row-" + @item.CaseID; 
int StatusDays = int.Parse(@item.StatusDays); 

、例えば、あなたのコード内でより多くの@をすべき使用していると思いbe

string RowClassName = "row-" + item.CaseID; 
int StatusDays = int.Parse(item.StatusDays);