[c#] 데이터 주석으로 DateTime 형식을 지정 하시겠습니까?

내 뷰 모델에이 속성이 있습니다.

[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }

날짜를 표시하거나 텍스트 상자에 날짜를 채우려면 다음이 필요합니다.

<%: Model.StartDate %>

<%: Html.TextBoxFor(m => m.StartDate) %>

날짜가 표시 될 때마다 다음과 같이 표시됩니다. 01/01/2011 12:00:00 AM

하지만 2011 년 1 월 1 일만 표시하고 싶습니다

데이터 주석이있는 표시 형식을 적용하는 방법이 있습니까? 날짜를 표시하는 모든 인스턴스로 이동하여 형식을 지정하는 코드를 추가하고 싶지는 않습니다.



답변

다음과 같이 태그를 지정하십시오.

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]


답변

이거 해봤 어?

[DataType(DataType.Date)]


답변

mvc 4에서는 TextBoxFor..

@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })

따라서 모델 또는 뷰 모델 클래스에서 데이터 주석을 사용할 필요가 없습니다.


답변

데이터 필드가 이미 DateTime 데이터 유형 인 [DataType(DataType.Date)]경우 주석 에 사용할 필요가 없습니다 . 다음을 사용하십시오.

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]

jQuery에서 달력에 datepicker를 사용하십시오.

    $(document).ready(function () {
        $('#StartDate').datepicker();
    });

HTML에서 EditorFor도우미를 사용하십시오 .

    @Html.EditorFor(model => model.StartDate)


답변

다음과 같이 DataAnnotation을 적용합니다.

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]


답변

이것을 사용하지만 완전한 솔루션입니다.

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]


답변

TextBoxFor 대신 EditorFor 사용