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.