2011-11-29 67 views
6

Tôi có một mô hình có thuộc tính DateTime ở một nơi được đặt trong trường nhập ẩn.Định dạng ASP.NET MVC của Thời gian hiển thị ẩn

@Html.HiddenFor(m => m.StartDate) 

nào tạo ra HTML sau:

<input id="StartDate" name="StartDate" type="hidden" value="1/1/2011 12:00:00 AM" > 

Vấn đề là thời gian được tính vào giá trị và xác nhận ngày tùy chỉnh của tôi hy vọng một ngày theo định dạng của ##/##/# ### do đó khiến việc xác thực thất bại. Tôi có thể dễ dàng thay đổi xác nhận ngày tùy chỉnh của mình để làm cho tình huống này hoạt động nhưng tôi thà làm cho nó để trường ẩn đặt giá trị theo đúng định dạng.

Tôi đã thử sử dụng thuộc tính DisplayFormat trên thuộc tính mô hình nhưng điều đó dường như không thay đổi định dạng của đầu vào bị ẩn.

Tôi nhận ra rằng tôi có thể tạo đầu vào ẩn theo cách thủ công và gọi StartDate.ToString ("MM/dd/yyyy") cho giá trị nhưng tôi cũng sử dụng mô hình này trong danh sách các mục được tạo động được lập chỉ mục và có các id như Collection [Some-Guid] .StartDate sẽ làm cho việc tìm ra id và tên của đầu vào trở nên khó khăn hơn một chút.

Có cách nào để làm cho giá trị 'giá trị' xuất hiện ở định dạng cụ thể khi hiển thị trường trên trang dưới dạng đầu vào bị ẩn không?

Trả lời

9

Bạn có thể sử dụng một mẫu biên tập tùy chỉnh:

public class MyViewModel 
{ 
    [UIHint("MyHiddenDate")] 
    public DateTime Date { get; set; } 
} 

và sau đó xác định ~/Views/Shared/EditorTemplates/MyHiddenDate.cshtml:

@model DateTime 
@Html.Hidden("", Model.ToString("dd/MM/yyyy")) 

và cuối cùng là theo quan điểm của bạn sử dụng EditorFor helper:

@model MyViewModel 
@Html.EditorFor(x => x.Date) 

chí này hiển thị mẫu trình chỉnh sửa tùy chỉnh cho Date thuộc tính của mô hình khung nhìn và do đó hiển thị trường ẩn với giá trị sử dụng định dạng mong muốn.

+1

Làm việc như một sự quyến rũ. Nhược điểm duy nhất là tôi phải có một mô hình riêng biệt cho trường hợp này khi trường được ẩn hơn khi tôi thực sự cần nó để có thể chỉnh sửa được. Nhưng, đó thực sự không phải là một điều xấu. –

Các vấn đề liên quan