2017-08-21 5 views
-1

予約の日付がDateFrom - DateToのプロパティ範囲に設定されている予約システムがあります。今私は.alertクラスを割り当てようとしています。その予約は期限切れに近づいています(有効期限は1日です)。クラスを現在のオブジェクトに設定する方法

ご予約の有効期限が近づいている場合、この予約には.alertクラスが設定されているだけでなく、他のすべての予約も含まれているため、<tr>はいずれも1つのみであるにもかかわらず赤です。どのようにそれを現在の予約にのみバインドするのですか?

条件

foreach(Reservation r in res) 
     { 
      bool varovani; 
      if (r.DateTo.AddDays(-1).Day <= DateTime.Now.Day) 
      { 
       varovani = true; 

      } 
      else 
      { 
       varovani = false; 
      } 
      ViewBag.Varovani = varovani; 
     } 

表形式で

<tbody> 
    @foreach (Reservation r in Model) 
    { 
     string alertClass = ""; 
     if (ViewBag.Varovani == true) 
     { 
      alertClass = "danger"; 
     } 
     else 
     { 
      alertClass = ""; 
     } 
     <tr class="@alertClass"> 

      <td>@r.Reserved.Id</td> 
      <td>@r.Name</td> 
      <td>@r.DateFrom</td> 
      <td>@r.DateTo</td> 
      <td> 

        @Ajax.ActionLink("Detail", "Detail", "Skies", new { id = r.Reserved.Id }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "modalContent", OnBegin = "openModalWindow" }) 

      </td> 
      <td> 
       @Html.ActionLink("Edit", "Edit", "Reservation", new { id = r.Id }, null) 
       @Html.ActionLink("Delete", "Delete", "Reservation", new { id = r.Id }, new { onclick = "return confirm('Přejete si opravdu smazat tuto výpujčku? " + r.Name + "');" }) 
      </td> 
     </tr> 
     } 
</tbody> 
+1

ViewBagアイテムの値に基づいてクラスを設定しています。これは、すべてが終了することを意味します。その1つの予約に基づいて設定する必要があります。私は 'Reservation'ビューモデルにプロパティを追加し、そこでそれを検出します。 – nurdyguy

答えて

0

ViewBag.Varovaniは、単一のbool値であるため、これが起こっている理由です。したがって、あなたが反復するたびに、 "Varovani" boolの値を上書きします。しない限り、私はそれをお勧めしませんが、(

<tbody> 
@foreach (Reservation r in Model) 
{ 
    <tr class="@(r.Varovani ? "danger" : "")"> 
     <td>@r.Reserved.Id</td> 
     <td>@r.Name</td> 
     <td>@r.DateFrom</td> 
     <td>@r.DateTo</td> 
     <td> 
       @Ajax.ActionLink("Detail", "Detail", "Skies", new { id = r.Reserved.Id }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "modalContent", OnBegin = "openModalWindow" }) 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", "Reservation", new { id = r.Id }, null) 
      @Html.ActionLink("Delete", "Delete", "Reservation", new { id = r.Id }, new { onclick = "return confirm('Přejete si opravdu smazat tuto výpujčku? " + r.Name + "');" }) 
     </td> 
    </tr> 
} 
</tbody> 

はまた、あなたのビューにロジックを実行することができます:あなたのビューで次に

public class Reservation 
{ 
    //Rest of class 

    public bool Varovani => DateTo.AddDays(-1).Day <= DateTime.Now.Day; 
} 

:何がしたいことは、あなたにReservationクラスをプロパティを追加ですあなたは)Reservationクラスを変更することはできません。

@foreach (Reservation r in Model) 
{ 
    string alertClass = ""; 
    if (r.DateTo.AddDays(-1).Day <= DateTime.Now.Day) 
    { 
     alertClass = "danger"; 
    } 
    else 
    { 
     alertClass = ""; 
    } 

    //Rest of your original Razor 

免責事項 「Varovani」は何を意味するのかわからないので、論理を正しく記述している場合は、それをプロパティ名として使用してください。

+0

パーフェクト!そしてvarovaníは英語で警告を意味する、それについては残念です。 – pajicekkralicek

関連する問題