2009-05-19 3 views
3

J'ai ajouté xVal à l'application NerdDinner - jusqu'ici tout va bien, j'obtiens une validation côté client avec jQuery.validate en une ligne, ce qui est vraiment magnifique. Mais je n'arrive pas à obtenir xVal pour valider un objet complexe. Dire que j'ai un objet dîner qui ressemble à ceci:xVal et le motif ViewModel - peut-il être fait?

public class Dinner 
{ 
    [Required] 
    public string Title { get; set; } 
} 

et un autre objet, un conteneur:

public class DinnerWrapper 
{ 
    public Dinner Dinner { get; set; } 
    public string Name { get; set; } 
} 

Si mon contrôleur passe Dinner à la vue, je peux obtenir xVal pour effectuer côté client validation à la fin de ma forme, comme ceci:

<% using (Html.BeginForm()) 
     { %> 
    <fieldset> 
     <p> 
      <label for="Title"> 
       Dinner Title:</label> 
      <%= Html.TextBox("Title") %> 
      <%= Html.ValidationMessage("Title", "*") %> 
     </p> 
    </fieldset> 
    <% } %> 
<%=Html.ClientSideValidation<Dinner>()%> 

Mais je ne peux pas le faire fonctionner quand je passe DinnerWrapper - xVal ne fonctionne pas de validation côté client avec le fol configuration de bas:

<% using (Html.BeginForm()) 
     { %> 
    <fieldset> 
     <p> 
      <label for="Title"> 
       Dinner Title:</label> 
      <%= Html.TextBox("Title", Model.Dinner.Title) %> 
      <%= Html.ValidationMessage("Title", "*") %> 
     </p> 
    </fieldset> 
    <% } %> 
<%=Html.ClientSideValidation<DinnerWrapper>()%> 

Des idées? Jusqu'à présent, j'ai réussi à intégrer xVal (et NHaml) dans l'application NerdDinner, mais j'ai l'impression d'avoir atteint un barrage routier.

Répondre

0

s'avère que je ne devais pas changer la ligne de ClientSideValidation - il fonctionne comme ceci:

<%=Html.ClientSideValidation<Dinner>()%> 
Questions connexes