2017-01-23 5 views
1

Ich habe eine von wo ich einen Editor für eine Start- und Endzeit haben möchte.EditorTemplate für DataType.Time wird nicht angewendet

Also habe ich eine EditorTemplate im Pfad 'Views/Shared/EditorTemplates/Time.cshtml' erstellt.

@model string 
@{ 
    var htmlAttributes = this.GetControlHtmlAttributes(); 
     htmlAttributes.AddClass("time"); 
     htmlAttributes.AddAttribute("style", "background-color: fuchsia"); 
    } 
@Html.TextBoxFor(m => m, htmlAttributes: htmlAttributes) 

Aus meiner Sicht, ich nenne

<td> 
    @Html.EditorFor(m => m[i].kal_von) 
</td> 
<td> 
    @Html.EditorFor(m => m[i].kal_bis) 
</td> 

(nur beachten Sie: es funktioniert nicht, wenn ich es so nennen:

<td> 
    @Html.EditorFor(m => m[i].kal_bis, "Time") 
</td> 

)

und das Modell sieht so aus:

[StringLength(5)][DataType(DataType.Time)][DataMember(EmitDefaultValue = false)] 
[DisplayNameAttribute("d_kal_termin.kal_von")] 
public string kal_von { get; set; } 

[StringLength(5)][DataType(DataType.Time)][DataMember(EmitDefaultValue = false)] 
[DisplayNameAttribute("d_kal_termin.kal_bis")] 
public string kal_bis { get; set; } 

Danke !!

Antwort

1

hinzufügen Haben Sie so etwas in Ihrem Code? Wo ersetzen Sie die Standard-RazorViewEngine?

Wenn dies der Fall ist, stellen Sie sicher, dass Ihre benutzerdefinierte ViewEngine den Pfad zu Ihrem EditorTemplates-Verzeichnis enthält.

+0

Ihr Wissen ist huuuuuge !!! Vielen Dank! – BinaryFr3ak

0

Sie müssen UIHint zu Ihrem Modell

[StringLength(5)] 
[DataType(DataType.Time)] 
[DataMember(EmitDefaultValue = false)] 
[UIHint("Time")] 
[DisplayNameAttribute("d_kal_termin.kal_von")] 
public string kal_von { get; set; } 

[StringLength(5)] 
[DataType(DataType.Time)] 
[DataMember(EmitDefaultValue = false)] 
[UIHint("Time")] 
[DisplayNameAttribute("d_kal_termin.kal_bis")] 
public string kal_bis { get; set; } 
+0

immer noch nicht funktioniert. Es verwendet den Standardzeit-Editor. – BinaryFr3ak