Tôi đang viết một ứng dụng ASP.NET MVC3 trong C# và thấy rằng gọi Html.HiddenFor
theo quan điểm của tôi sẽ hiển thị DateTime
khác (và không đúng) nếu tôi gọi Html.DisplayFor
.Html.HiddenFor định dạng DateTime không chính xác trong ASP.NET
Mô hình lấy giá trị của nó từ không có trang trí DisplayFormat và điều này dường như hoạt động với Html.DisplayFor
. Thuộc tính trong câu hỏi được viết như sau:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime MeetingStartDate { get; set; }
Và xem màn hình này sử dụng:
@Html.DisplayFor(model => model.MeetingStartDate)
@Html.HiddenFor(model => model.MeetingStartDate)
Cuộc gọi DisplayFor sẽ làm cho ngày như 16/04/2012
tuy nhiên HiddenFor sẽ làm cho nó như value="04/16/2012 00:00:00"
.
Tôi đã thử thay đổi văn hóa hiện tại để đặt DateTimeFormat
nhưng điều này không có hiệu lực.
Văn hóa hiện tại là en-GB nên không nên in ngày en-US.
Nếu giá trị bị ẩn, tại sao nó được định dạng? Có lẽ nó chỉ cần được phân tích cú pháp một lần nữa trên đường trở về ...nếu nó không dành cho * tiêu thụ * con người, định dạng không quan trọng. –
@JonSkeet Đối với một số lý do, điều này làm mất hiệu lực mô hình, im làm việc trong en-GB nhưng nó in ra một ngày en-US. Nhưng * chỉ * cho yếu tố ẩn này –
Bạn có thể sử dụng mẫu trình chỉnh sửa tùy chỉnh Xem câu trả lời: http://stackoverflow.com/questions/8305262/asp-net-mvc-format-of-hidden-datetime –