当有效期接近尾声时,更改文本的颜色.c# Mvc 3
本文关键字:文本 颜色 Mvc 接近 有效期 | 更新日期: 2023-09-27 17:50:17
在我的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>
}
有更好的方法吗?我有结算结束日期和结算开始日期。计费周期是他们希望的某个计费周期,是每月、6个月或每年。帐户-字段2将其更改为红色,帐户1保持白色。谢谢:)
我建议在您的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
会适合你的设计吗?
。
public enum BillingCycle
{
Monthly,
Biannually,
Annually
}