2012-04-13 5 views
0

に基づいて画像を不可視に表示します。MVCレイザー私のようないくつかのかみそりのコード持っているモデルアイテム条件

foreach (var item in projectGroup) { 
       <tr> 
        ... 
        <td> 
         <label id="@("fieldapprovallabel" + @item.InvoiceLineId)">@item.FieldUserName</label> 
         @if(item.FieldApproved != null) { 
          <img src="../../Content/Images/stock_lock.gif" alt="locked" class="lockicon" /> 
         } 
        </td> 
... 
} 

だから基本的にロック画像が条件に基づいてのみ表示されます。私は、このような論理をビューに持たせるのは良いことではないことを理解しています。誰もこれを行うためのより良い方法を提案することはできますか?

答えて

2

単純なブール論理やビューのヌルチェックに問題があるとは思わない。

唯一の選択肢は、html(または空の文字列)を返すヘルパークラスをすべて隠すことです。このような単純なケースでは不要な複雑さが加わると思います。

0

IsLockedというプロパティを持つビューモデルを作成できます。これは、 "IsLocked"判定を行うために使用されるビジネスロジックを抽象化し、ビューがどのように振る舞うべきかを述べず、アイテムが特定の状態にあることをビューに通知します。

以降のバインドコードは同様ですが、item.FieldApprovedがロック状態に等しいことをビューが認識する必要はありません。

もちろん、あなたのアプリケーションの文脈では、すでに懸念のきれいな分離であるかもしれません。その場合、私はそれが問題ないと思います。