EditorFor ()에 형식이 지정된 날짜 표시
인트라넷 웹 앱을 개발하기 위해 MVC4 및 Entity Framework를 사용하고 있습니다. 편집 할 수있는 사람 목록이 있습니다. 편집보기에 액세스하면 "시작일"텍스트 상자에 날짜가 다음과 같이 표시됩니다 7/11/2013 00:00:00
.. 내가 원하는 것은 yyyy / MM / dd 형식으로 표시하는 것입니다. 나는 시도 String.Format("{0:yyyy/MM/dd}", item.StartDate)
했지만 작동하지 않습니다. 나는 또한 주석으로 시도했지만 [DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
둘 다 작동하지 않습니다.
내 견해로는 다음과 같습니다.
<div class="editor-field">
@Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker" })
@Html.ValidationMessageFor(model => model.StartDate)
</div>
어떻게해야하는지 아십니까?
@Html.TextBoxFor(m => m.StartDate,
new { @Value = Model.StartDate.ToString("yyyy/MM/dd"), @class="datepicker" })
귀하의 질문은 요청 EditorFor()
하지만 귀하가 제공 한 코드는 TextboxFor()
.
당신에 모델 (예 : MyModel.cs), 당신은해야합니다 :
public class MyModel
{
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime StartDate { get; set; }
}
당신의에서 보기 당신이 쓴 것처럼 (예 : Index.cshtml), 당신은 단순히 그것을 사용 :
@Html.EditorFor(m => m.StartDate, new { htmlAttributes = new { @class = "datepicker" } })
예상대로 작동합니다.
그렇게함으로써 (뷰에 표시되는 방식을 변경하는 대신) 모델을 다른 곳에서 재사용 할 수 있으며 뷰에 날짜를 표시하는 방법을 지정할 필요가 없습니다. 따라서 어떤 이유로 표시 형식을 변경해야하는 경우 한 번만 변경하면됩니다.
이 솔루션은 MVC 5에서도 작동합니다.
나에게 가장 쉬운 것은 type 속성 을 추가하는 것입니다.
@Html.EditorFor(model => model.FechaRegistro, new { htmlAttributes = new { @class = "form-control oso" ,@type = "date" } })
Html.EditorFor도 작업
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "datepicker", @Value = model.StartDate.ToString("yyyy/MM/dd") } })
나는 여기에서 (또한 MVC와 함께) 멍청한 사람이고 이것은 부분 클래스를 사용하는 Maxime의 변형 일뿐입니다 ...
DB 우선 모델이 있고 변경 사항을 잃을 까봐 직접 변경하지 않으려면 부분 클래스에서 동일한 작업을 수행하십시오. Models 폴더에 새 클래스 / 파일을 추가하고 생성 된 모델과 동일한 네임 스페이스를 사용하는지 확인하십시오.
따라서 다음은 날짜 형식을 지정하고 다른 값의 표시 이름을 수정하기 위해 메타 데이터를 선언하는 방법입니다 (예 : 테이블의 열 머리글을 축약하기 위해).
namespace MyProjectName.Models
{
public class MyModelMeta
{
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)] // format used by Html.EditorFor
public DateTime StartDate;
[Display(Name = "User ID")] // abbreviation shown in Html.DisplayNameFor
public string SomeReallyLongUserIDColumn;
}
[MetadataType(typeof(MyModelMeta))]
public partial class MyModel
{
}
}
이것을 시도하십시오 .. 문제를 해결할 수있는 textboxfor .. 내의 htmlAttribute로 날짜 값을 변환하십시오.
<div class="editor-field">
@Html.TextBoxFor(model => model.StartDate, new { htmlAttributes = new { @Value = Model.StartDate.ToString("yyyy/MM/dd"), type = "date" }})
@Html.ValidationMessageFor(model => model.StartDate)
</div>
참조 URL : https://stackoverflow.com/questions/15943797/display-a-formatted-date-in-an-editorfor
'programing tip' 카테고리의 다른 글
획 색상을 사용자 정의 색상으로 변경해야합니다. (0) | 2020.12.28 |
---|---|
"X-Frame-Options에 의해 표시가 금지되어 문서 표시를 거부했습니다."YouTube 동영상 삽입 (0) | 2020.12.28 |
onClick이 자식과 함께 LinearLayout에서 트리거되지 않았습니다. (0) | 2020.12.28 |
WINDOWS RESTful 서비스의 cURL POST 명령 줄 (0) | 2020.12.28 |
설치된 코코아 포드의 버전을 확인하는 방법은 무엇입니까? (0) | 2020.12.28 |