ASP에서 DateTime을 특정 형식으로 렌더링하는 방법.NET MVC 3?
이 있는 DateTime렌더링하려면 해야 요? 예를 들어, "" " " " " " ? 예를 들어 다음 형식으로 렌더링할 수 있습니다.ToLongDateString()반품?
시도해 본 적이 있어요
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
...식이 속성 또는 필드를 가리켜야 하므로 예외가 발생합니다.그리고 이건...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
를 발생시키지 출력은 있습니다(...예외를 던지지 않지만 렌더링된 출력은 비어 있습니다(비록val는 디버거에서 볼 수 있듯이 예상 값을 포함합니다.
미리 알려주셔서 감사합니다!
편집
ToLongDateString예에 불과합니다.내가 실제로 사용하고 싶은 것은ToLongDateString는 의사자 확방법다니입의 입니다.DateTime그리고.DateTime?:
public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
if (dateTime.TimeOfDay == TimeSpan.Zero)
return dateTime.ToString("d");
else
return dateTime.ToString("g");
}
public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
if (dateTime.HasValue)
return dateTime.Value.FormatDateTimeHideMidNight();
else
return "";
}
그래서 저는 사용할 수 없을 것 같습니다.DisplayFormat 및 속성DataFormatString매개 변수를 사용할 수 있습니다.
뷰 모델 특성을 다음 특성으로 장식할 수 있습니다.
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}",
ApplyFormatInEditMode = true)]
public DateTime MyDateTime { get; set; }
그리고 당신이 보기에:
@Html.EditorFor(x => x.MyDate)
또는 값을 표시하기 위해
@Html.DisplayFor(x => x.MyDate)
제가 권장하지 않는 또 다른 가능성은 약하게 입력된 도우미를 사용하는 것입니다.
@Html.TextBox("MyDate", Model.MyDate.ToLongDateString())
특정 형식의 날짜를 표시하는 것만 원하는 경우 다음으로 전화하십시오.
@String.Format(myFormat, Model.MyDateTime)
용사를 합니다.@Html.DisplayFor(...) 것을 가 없는 한 입니다. 를 들어, " " " (으): " " (으)로 된) 템플릿을 합니다.IEnumerable<T>템플릿을 만드는 것은 매우 간단하며 많은 유연성을 제공할 수도 있습니다. 폴더. 이 폴더의 이름은 "Views 폴더"입니다.DisplayTemplates해당 폴더 내에 템플릿을 작성할 모델 유형이 포함된 부분 뷰를 추가합니다.이 경우에 나는 추가했습니다./Views/Shared/DisplayTemplates 그고부 뷰추다니습가했를인분라는 인 뷰를 했습니다.ShortDateTime.cshtml.
@model System.DateTime
@Model.ToShortDateString()
이제 다음 행을 사용하여 템플릿을 호출할 수 있습니다.
@Html.DisplayFor(m => m.MyDateTime, "ShortDateTime")
모델 내부의 단순한 형식화된 출력
@String.Format("{0:d}", model.CreatedOn)
또는 각 루프의 앞에 있습니다.
@String.Format("{0:d}", item.CreatedOn)
모델에서 인라인 형식을 지정하고 날짜 속성을 표시하려면 다음 방법을 사용합니다.
@Html.ValueFor(model => model.MyDateTime, "{0:dd/MM/yyyy}")
그렇지 @때을 @Darin이 제안한 대로 @Darin이 @Darin을 할 수 .[DisplayFormat]기여하다.
당신의 모든 것이DateTime유형은 사용자 정의를 사용할 수 있는 것과 동일한 방식으로 렌더링됩니다.DateTime표시 템플릿.
보기 폴더에 "표시"라는 폴더를 만듭니다."템플릿"은 컨트롤러별 보기 폴더 또는 "공유" 폴더 아래에 있습니다(부분적으로 작동함).
내부에서 이름이 지정된 파일을 만듭니다.DateTime.cshtml필요한DateTime처럼@model날짜를 렌더링하는 방법을 코드화합니다.
@model System.DateTime
@Model.ToLongDateString()
이제 보기에서 이 기능을 사용하면 다음과 같이 작동합니다.
@Html.DisplayFor(mod => mod.MyDateTime)
디스플레이에 추가하는 관례를 따르는 한Templates" 폴더와 파일 이름을 표시 중인 유형과 일치하도록 지정하면 MVC는 자동으로 이 폴더를 사용하여 값을 표시합니다.이것은 "편집자 템플릿"을 사용하여 시나리오를 편집하는 경우에도 작동합니다.
다음은 템플릿에 대한 추가 정보입니다.
서식 세부 정보를 뷰 모델이 아닌 뷰로 유지하는 것을 선호합니다.MVC4/레이저의 경우:
@Html.TextBoxFor(model => model.DateTime, "{0:d}");
datetime 형식 참조: http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.71).aspx
그러면 JQuery 날짜 선택기가 연결되어 있습니다. 날짜를 다른 형식으로 입력합니다.아!
날짜 선택자의 형식을 동일한 형식으로 설정해야 할 것 같습니다.
그래서 나는 그것을 저장하고 있습니다.System.Globalization데이터-* 속성의 형식을 지정하고 설정 시 수집합니다.
@Html.TextBoxFor(
model => model.DateTime.Date,
"{0:d}",
new
{
@class = "datePicker",
@data_date_format=System.Globalization.CultureInfo
.CurrentUICulture.DateTimeFormat.ShortDatePattern
}));
그리고 여기에 나쁜 부분이 있습니다: .net과 datepicker의 형식이 일치하지 않기 때문에 해커가 필요합니다.
$('.datePicker').each(function(){
$(this).datepicker({
dateFormat:$(this).data("dateFormat").toLowerCase().replace("yyyy","yy")
});
});
그건 좀 약하지만, 많은 경우를 다루어야 합니다.
나에게 효과가 있습니다.
<%=Model.MyDateTime.ToString("dd-MMM-yyyy")%>
최근에도 같은 문제가 있었습니다.
모델에서 DataType을 Date로 정의하는 것만으로도 작동한다는 것을 알게 되었습니다(CodeFirst 접근 방식 사용).
[DataType(DataType.Date)]
public DateTime Added { get; set; }
MVC5에서, 당신의 모델이 날짜 시간이라면, 저는 사용할 것입니다.
string dt = Model.ToString("dd/MM/yyy");
또는 모형에 날짜 시간의 속성이 포함된 경우
string dt = Model.dateinModel.ToString("dd/MM/yyy");
형식의 공식적인 의미는 다음과 같습니다.
https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
당신은 이렇게 할 수 있습니다.@item.Date.Value.Tostring("dd-MMM-yy");
날짜를 짧은 형식으로 표시하려면 @Model.date를 사용합니다.ShortDateString()으로 날짜를 인쇄합니다.
특정 형식의 날짜를 표시하는 것만 원하는 경우 다음으로 전화하십시오.
@Model.LeadDate.ToString("dd-MMM-yyyy")
@Model.LeadDate.ToString("MM/dd/yy")
다음과 같은 형식이 될 것입니다.
26-Apr-2013
04/26/13
다음에 표시됩니다.dd/MM/yyyy보기의 형식
뷰:
대신에DisplayFor이 코드를 사용합니다.
<td>
@(item.Startdate.HasValue ? item.Startdate.Value.ToString("dd/MM/yyyy") : "Date is Empty")
</td
또한 값이 date 열에 null인지 확인하고, true이면 Date is Empty 또는 열의 실제 형식 날짜가 표시됩니다.
희망은 누군가를 돕습니다.
@{
string datein = Convert.ToDateTime(item.InDate).ToString("dd/MM/yyyy");
@datein
}
파일 보기만 이렇게 조정합니다.이거 드셔보세요.
@Html.FormatValue( (object)Convert.ChangeType(item.transdate, typeof(object)),
"{0: yyyy-MM-dd}")
item.transdate당신의 것입니다DateTime형식 데이터
언급URL : https://stackoverflow.com/questions/6001654/how-to-render-a-datetime-in-a-specific-format-in-asp-net-mvc-3
'programing' 카테고리의 다른 글
| 깃 풀을 푸는 방법은? (0) | 2023.05.12 |
|---|---|
| 에서 콘솔 응용 프로그램의 종료 코드를 지정하려면 어떻게 해야 합니까?NET? (0) | 2023.05.12 |
| findOneAndUpdate 및 update의 mongoose 차이 (0) | 2023.05.12 |
| "x is null"과 "x == null"의 차이점은 무엇입니까? (0) | 2023.05.12 |
| mongodb 실패: DB 서버 연결 오류: 연결 가능한 서버가 없습니다. (0) | 2023.05.12 |