2011-04-14 2 views
0

내 HTML 페이지에서 만료 날짜가 가까워지면 날짜의 색상을 변경하고 싶습니다.만료 날짜가 가까워지면 텍스트 색상 변경. C# Mvc 3

<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 개월 또는 1 년 단위로 청구되는 특정 결제주기입니다. 계정 - 필드 2는 빨간색으로 변경하고 계정 1은 흰색으로 유지합니다. 고마워요 :)

답변

3

ModelModel이 만료 될지 여부를 정의하는 방법을 추가하는 것이 좋습니다. 이렇게하면 MVC의 관심사를 유지하면서 비즈니스 로직을 Model에 캡슐화하고보기를 단순화 할 수 있습니다. 같은 뭔가 :

@if (Model.IsCloseToExpiring()) 
{ 
    <div class="account-field2">@Model.BillingEndDate.ToLongDateString()</div> 
} 
else 
{ 
    <div class="account-field">@Model.BillingEndDate.ToLongDateString()</div> 
} 

기타 고려할 사항 :

  • 는 계정이 const으로 만료 될 때까지의 일 수를 정의 매직 넘버를 피하십시오. 예를 들어 이러한 값을 구성 또는 데이터베이스에 보관하려면 코드를 이해하기 쉽고 나중에 수정하기가 쉽습니다.

  • 매우 설명 적이 지 않으므로 대신 enum이 적합할까요?

public enum BillingCycle 
{ 
    Monthly, 
    Biannually, 
    Annually 
} 
+0

이러한 제안을 염두에 두겠습니다. 이것은 매우 도움이되었습니다. 감사 :) – Samjus

관련 문제