Изменение цвета текста, когда срок годности подходит к концу. C # Mvc 3

#c# #html #asp.net-mvc-3

#c# #HTML #asp.net-mvc-3

Вопрос:

На моей HTML-странице я хочу изменить цвет даты, когда срок ее действия подходит к концу.

 <div class="account-label">Billing Expiry Date</div>
   @if (Model.BillingCycleID == 1 amp;amp; (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 amp;amp; (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 amp;amp; (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 остается белой. Спасибо 🙂

Ответ №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
}
  

Комментарии:

1. Я буду иметь в виду эти предложения. Это было очень полезно. Спасибо 🙂