Question

J'ai lu poste Scott Hanselman sur ce sujet. J'ai trouvé une autre article qui semble être une approche plus simple. La deuxième dont j'ai décidé d'essayer.

Cependant, la première partie dans la création des EditorTemplates ne fonctionne pas pour moi. Je copié DateTime.ascx et TimeSpan.ascx a l'auteur leur avait écrit. Ensuite, je partage les champs, à mon avis.

    <div class="editor-label">
        <%= Html.LabelFor(model => model.LeaveRequest.DateOfLeave)%>
    </div>
    <div class="editor-field">
        <div class="date-container">
            <%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date)%>
        </div>
        <div class="time-container">
            <%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.TimeOfDay)%>
        </div>
        <div class="clear">
            <%= Html.ValidationMessageFor(model => model.LeaveRequest.DateOfLeave)%>
        </div>
    </div>

Le problème que j'ai est que le comportement que je reçois est pas le même que cet auteur a expliqué que devrait se produire. Voici une capture d'écran de mes résultats.

Capture d'écran montrant DateTime plein dans le premier champ et tous les zéros dans la seconde

Je dois manquer quelque chose, mais je ne peux pas dire quoi. J'ai lu cet article plusieurs fois et ne peut pas voir ce que je suis absent. Je suppose qu'il doit y avoir quelque chose à dire pour nous le programme des nouvelles EditorTemplates, mais je ne sais pas comment.

Était-ce utile?

La solution

Vous avez manqué le fait que la solution à la fois de Scott et la solution que vous lien vers ne pas faire:

<%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date) %>

Au lieu de cela ils utilisent:

<%= Html.EditorFor(model => model.LeaveRequest.DateOfLeave.Date) %>

Et puis utiliser un éditeur personnalisé pour limiter le champ juste la date (au lieu de la date et heure).

Faites défiler jusqu'à la Séparer la date / heure fields en-tête de l'article que vous lien et lire un peu plus sur les modèles de l'éditeur personnalisés.

Autres conseils

Vous pouvez également ajouter une valeur par défaut du côté client si vous le souhaitez.

<%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date,
new { @Value= DateTime.Now })%> 

définit la valeur de Texbox initiale à la DateTime actuelle mais vous pouvez évidemment le mettre à tout ce que vous aimez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top