[asp.net-mvc] TextBoxFor ()의 날짜 만

TextBoxFor <,> (expression, htmlAttributes)를 사용하여 DateTime의 유일한 날짜 부분을 텍스트 상자에 표시하는 데 문제가 있습니다.

이 모델은 Linq2SQL을 기반으로하며 필드는 SQL 및 엔터티 모델의 DateTime입니다.

실패한:

<%= Html.TextBoxFor(model => model.dtArrivalDate, String.Format("{0:dd/MM/yyyy}", Model.dtArrivalDate))%>

이 트릭은 감가 상각되는 것 같습니다. htmlAttribute 객체의 문자열 값은 무시됩니다.

실패한:

[DisplayFormat( DataFormatString = "{0:dd/MM/yyyy}" )]
public string dtArrivalDate { get; set; }

“00:00:00″부분없이 세부 정보 / 편집보기에서 날짜 부분 만 저장하고 표시하고 싶습니다.



답변

[DisplayName("Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime StartDate { get; set; }

그때:

<%=Html.EditorFor(m => m.StartDate) %>


답변

MVC4TextBoxFor문자열 형식 매개 변수를 사용 하는 새 과부하 를 추가하여이 문제를 해결했습니다 . 이제 간단하게이 작업을 수행 할 수 있습니다.

@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}")

html 속성을 사용하는 과부하가 있으므로 CSS 클래스를 설정하고 날짜 선택기를 연결하는 등을 할 수 있습니다.

@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}", new { @class="input-large" })


답변

<%= Html.TextBoxFor(model => model.EndDate, new { @class = "jquery_datepicker", @Value = Model.EndDate.ToString("dd.MM.yyyy") })%>


답변

또는 형식화되지 않은 도우미를 사용하십시오.

<%= Html.TextBox("StartDate", string.Format("{0:d}", Model.StartDate)) %>


답변

이것은 나를 위해 일했습니다.

@Html.TextBoxFor(m => m.DateOfBirth, "{0:MM/dd/yyyy}", new { size = "12", @class = "DOB", tabindex = 121 })


답변

원시 HTML 사용을 두려워하지 마십시오.

<input type="text" value="<%= Html.Encode(Model.SomeDate.ToShortDateString()) %>" />


답변

TL; DR;

@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date")

신청하는 [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]것이 효과가 없었습니다!


설명:

사용하여 모델의 날짜 속성을 표시하기 위해 Html.TextBoxFor:

여기에 이미지 설명을 입력하십시오

모델 클래스의 날짜 속성 :

public DateTime DOB { get; set; }

모델 측에는 다른 것이 필요하지 않습니다.

면도기에서는 다음을 수행합니다.

@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date")

설명:

input유형 의 html 요소 날짜는 ISO8601date관련하여 형식화되어야합니다 .yyyy-MM-dd

표시된 날짜는 사용자 브라우저의 로캘을 기반으로 형식화되지만 구문 분석 된 값은 항상 yyyy-mm-dd 형식입니다.

내 경험은 언어가 Accept-Language헤더가 아니라 브라우저 표시 언어 또는 OS 시스템 언어에 의해 결정된다는 것 입니다.