2011-08-16 6 views
5

Mam niektóre pola DateTime w moich klasach modelu MVC - niektóre z nich wymagają daty jako danych wejściowych i innych, które wymagają czasu jako danych wejściowych - ale obie są właściwością DateTime.W MVC3 możliwe jest posiadanie wielu edytorów EditorTemplates dla tego samego typu?

Czy możliwe jest posiadanie edytora EditorTemplate for DateTime, który w jakiś sposób tworzy selektor daty dla właściwości, które mają być datami, i selektora czasu dla właściwości, które mają być razy?

Odpowiedz

9

Tak, tutaj jest jeden sposób:

W ~/Views/Shared/EditorTemplates (lub ~/Views/Shared/DisplayTemplates, tworzyć pliki szablonów, które wykorzystują swój ulubiony widok silnika (przykład używa Razor/C#)

plik Date.cshtml

replace this with a real date picker 

plik Time.cshtml

replace this with a real time picker 

Potem ja n model:

[UIHint("Date")] 
public DateTime DateProperty { get; set; } 

[UIHint("Time")] 
public DateTime TimeProperty { get; set; } 

UIHint nazwa atrybutu musi być zgodna z nazwą pliku szablonu i UIHint jest w System.ComponentModel.DataAnnotations, więc trzeba będzie odpowiedni korzystając odniesienie oświadczenie/montaż, jeśli nie ma go już .

Ewentualnie użyć TimeSpan reprezentować swoje czasy - czyli co DateTime powraca do swojej TimeOfDay własności ...

+0

Dzięki Jon, że dam szansę. –

Powiązane problemy