2009-04-06 5 views
0

Scénario: un utilisateur entre une chaîne dans le champ DateTime. Un * apparaît quand une publication se produit mais aucun message dans un ValidationSummary. J'ai essayé d'implémenter IDataErrorInfo mais le code ne passe jamais par IDataErrorInfo.this [string columnName] pour le champ EventDate. J'ai essayé à nouveau d'implémenter des attributs DataAnnotations cela ne fonctionne pas. Lorsque le code de temps atteint les attributs, le paramètre EventDate a été remplacé par DateTime.MinValue par l'infrastructure.Comment fournir un message d'erreur utile dans un ValidationSummary pour une entrée utilisateur invalide?

Toute aide reçue avec gratitude.

J'ai posté les mêmes questions sur les forums ASP.Net MVC, Steve Sanderson, Stephen Walter et Schotime mais pas de réponses donc celui qui corrige ceci est un maître MVC.

Vue:

<%= Html.ValidationSummary() %> 
<label for="EventDate">EventDate:</label> 
<%=Html.TextBox("Dinner", Model.EventDate)%> 
<%= Html.ValidationMessage("EventDate", "*") %> 

Controller:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(Dinner item) 
public ActionResult Edit(int ID, FormCollection coll) 
{ 
    //What would you recommend? 
} 

Répondre

0

La réponse se présente sous la forme d'un nouvel exemple de classeur de modèle d'annotations de données fourni par Microsoft au http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471.

Cela affichera maintenant des valeurs non valides dans un résumé de validation.

Espérons que cela en fera une version ASP.Net MVC 1.01. Le message d'erreur est codé en dur dans la DLL. J'ai donc suggéré de créer un nouvel attribut ValidationAttribute dans lequel vous pouvez spécifier votre propre message personnalisé. Lire la suite ici. http://forums.asp.net/t/1406636.aspx

0

Si vous utilisez la première signature de la méthode qui accepte un objet Dinner et vous ajoutez changer votre zone de texte pour refléter le nom de la propriété ...

<%= Html.TextBox("Dinner.EventDate", Model.EventDate) %> 

et votre message de validation ...

<%= Html.ValidationMessage("Dinner.EventDate", "*") %> 

Cela devrait alors fonctionner.

Questions connexes