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) %>
답변
MVC4 는 TextBoxFor
문자열 형식 매개 변수를 사용 하는 새 과부하 를 추가하여이 문제를 해결했습니다 . 이제 간단하게이 작업을 수행 할 수 있습니다.
@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 요소 날짜는 ISO8601 과 date
관련하여 형식화되어야합니다 .yyyy-MM-dd
표시된 날짜는 사용자 브라우저의 로캘을 기반으로 형식화되지만 구문 분석 된 값은 항상 yyyy-mm-dd 형식입니다.
내 경험은 언어가 Accept-Language
헤더가 아니라 브라우저 표시 언어 또는 OS 시스템 언어에 의해 결정된다는 것 입니다.