J'ai un objet nommé Utilisateur, avec une propriété Nom, avec un Obligatoire attribut.La validation côté client ne fonctionne pas avec des sous-propriétés dans ASP.NET MVC 2?
public class User
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
J'ai créé une zone de texte, comme suit:
<%= Html.TextBoxFor(model => model.Name) %>
Lorsque vous activez la validation clientside, Nom est parfaitement validé côté client.
Cependant, si je crée un ViewModel où l'utilisateur est maintenant une propriété
public class UserModel
{
public User TheUser { get; set; }
public string SomeOtherProperty { get; set; }
}
et crée mon textbox
<%= Html.TextBoxFor(model => model.TheUser.Name) %>
puis validation échoue clientside. Le formulaire est publié sans validation par le client, détectant l'erreur.
Il semble que le javascript
window.mvcClientValidationMetadata se remplit comme avant, sans différence notable.
Ce qui donne? Est-ce qu'il y a quelque chose que je dois faire?
J'utilise
- ASP.NET MVC 2 RC2 (avec .NET 3.5/VS2008)
- MicrosoftMvcJQueryValidation.js des dernières Futures télécharger
Edit:
En y regardant de plus près window.mvcClientValidationMetadata n'est pas rempli comme il se doit. Aucun ValidationRules sont spécifiés:
{"FieldName":"TheUser.Name","ReplaceValidationMessageContents":true,"ValidationMessageId":"TheUser_Name_validationMessage","ValidationRules":[]}
Pouvez-vous afficher votre définition de classe d'utilisateur? – Levi
J'ai ajouté la classe maintenant ... – MediaMonkey
des mises à jour sur ce problème? l'avez-vous résolu? – Laith