0

我有一些剃须刀代码,例如:

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>
...
}

所以基本上锁定图像仅基于条件可见。我知道在视图中有这样的逻辑是不好的。任何人都可以提出更好的方法吗?

4

2 回答 2

2

我不相信简单的布尔逻辑或视图中的空检查有什么问题。

唯一的选择是将它全部隐藏在一些返回html(或空字符串)的帮助类中,我认为这在像这样的简单情况下会增加不必要的复杂性。

于 2012-04-13T00:34:55.413 回答
0

您可以创建一个具有名为IsLocked. 这抽象了用于做出“IsLocked”确定的业务逻辑,并且没有说明视图应该如何表现,只是通知视图该项目处于特定状态。

随后的绑定代码将类似,但不需要视图知道item.FieldApproved等于锁定条件。

当然,在您的应用程序的上下文中,item.FieldApproved可能已经完全分离了关注点,在这种情况下,我认为这很好。

于 2012-04-13T00:38:25.567 回答