내 모델에는 public DateTime Date {get;set;}
속성이 있다고 가정 해 보겠습니다. 보기에서 그것은 두 개의 텍스트 상자로 표현되어야합니다 - 하나는 Date를위한 것이고 다른 하나는 Time을위한 것입니다.동일한 DateTime 값에 대해 서로 다른 EditorTemplates를 사용할 수 없습니까?
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker", style = "width:90px" })
및 TimeOnly.cshtml
@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortTimeString() : string.Empty), new { @class = "timePicker", style = "width:90px" })
그리고보기
@Html.EditorFor(x => x.Date)
@Html.EditorFor(x => x.Date,"TimeOnly")
에 EditorFor 필드 : 나는 두 개의 서로 다른 편집기 템플릿
DateTime.cshtml을 생성
이제는 컨트롤러에 전달 된 Date 속성의 실제 값이 기본 시간 인 12:00으로 설정됩니다. EditorFor 필드의 순서를 변경하면 Date에 똑같은 일이 발생합니다. TimeOnly 템플릿이 적용된 직후 날짜가 다시 원래 Date 값으로 롤백되지만 Time 부분은 올바른 상태로 유지됩니다. 뷰 자체 값을 확인하지만,에 제출에 다시
중 하나 정확한 날짜와 기본 시간과 반대와 코스 I의(처음 사용하는 템플릿에 따라 다름), 컨트롤러에 기본 값을 전달 모델에 다른 속성을 추가하여 항상 날짜와 시간을 분리 할 수 있지만 더 나은 솔루션이 있습니까?
이제 내가 말할거야 : 대린, 네가 실제 살아있는 사람이라고 생각하지 않아. 그럴 수는 없습니다. 내 생각에 당신은 지구상에서 가장 똑똑한 몇몇 사람들이 협력하여 만든 구글 로봇 일 것입니다. 항상 정답으로 빨리 나오기 란 불가능합니다. 넌 날 놀라게하고있어. – Agzam
@Agzam, 방금 인터넷을 통해 StackOverflow에 흩어져있는 정보의 광대 한 바다를 모으기 위해 내 경험을 사용하고 있습니다 :-) 이것은 말하자면, 이전의 프로젝트에서 여기에 질문 된 대부분의 질문을 통해 대답이 나온 것입니다. 분명한. –