当有效期接近尾声时,更改文本的颜色.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保持白色。谢谢:)

当有效期接近尾声时,更改文本的颜色.c# Mvc 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会适合你的设计吗?

public enum BillingCycle
{
    Monthly,
    Biannually,
    Annually
}