在我的html页面上,我想在接近过期时更改日期的颜色。
<div class="account-label">Billing Expiry Date</div>
@if (Model.BillingCycleID == 1 && (DateTime.Now.AddDays(23) == true))
{
<div class="account-field2">@Model.BillingEndDate.ToLongDateString()</div>
}
else
{
<div class="account-field">@Model.BillingEndDate.ToLongDateString()</div>
}
@if (Model.BillingCycleID == 2 && (DateTime.Now.AddDays(176) == true))
{
<div class="account-field2">@Model.BillingEndDate.ToLongDateString()</div>
}
else
{
<div class="account-field">@Model.BillingEndDate.ToLongDateString()</div>
}
@if (Model.BillingCycleID == 3 && (DateTime.Now.AddDays(328) == true))
{
<div class="account-field2">@Model.BillingEndDate.ToLongDateString()</div>
}
else
{
<div class="account-field">@Model.BillingEndDate.ToLongDateString()</div>
}
有更好的方法吗?我有结算结束日期和结算开始日期。结算周期适用于他们希望每月,每月,每月或每年的特定结算周期。帐户 - 字段2将其更改为红色,帐户1保持白色。谢谢:))
答案 0 :(得分:3)
我建议在Model
中添加一个方法,用于定义Model
是否即将到期。这将简化您的视图并将业务逻辑封装在Model
中,从而保持关注点的MVC分离。类似的东西:
@if (Model.IsCloseToExpiring())
{
<div class="account-field2">@Model.BillingEndDate.ToLongDateString()</div>
}
else
{
<div class="account-field">@Model.BillingEndDate.ToLongDateString()</div>
}
需要考虑的其他事项:
避免使用幻数,定义帐号即将到期的天数const
。它将使代码更容易理解,并且将来更容易修改,例如,您希望将这些值保留在配置或数据库中。
Model.BillingCycleID
不是很具描述性,enum
是否符合您的设计?
e.g。
public enum BillingCycle
{
Monthly,
Biannually,
Annually
}