J'ai un formulaire et le seul élément requis est le nom du client. Dans mon modèle, j'ai donc :
[DisplayName("Customer name*:")]
[Required]
public string CustomerName
{ get; set; }
Auparavant, je faisais un post HTML et tout fonctionnait bien, y compris la validation.
Maintenant, j'ai "ajaxifié" le formulaire, en utilisant Ext.direct.mvc ( http://code.google.com/p/ext-direct-mvc/ ), ce qui est un fait significatif, et l'affichage des données au format Json et les données sont affichées avec succès.
Lorsque je place un point d'arrêt dans mon code (actuellement modifié à des fins de débogage) :
[DirectInclude]
[HttpPost]
public ActionResult SaveOrUpdateOrderLines(CustomerOrderModel customerOrderModel)
{
if (!ModelState.IsValid)
{
return ModelState.JsonValidation();
}
return null;
Je vois que le CustomerOrderModel.CustomerOrderHeader.CustomerName = ""
Mais ModelState.IsValid est vrai.
Voici maintenant quelques-unes des choses que j'ai essayées :
-
J'ai inséré le code suivant, juste avant la vérification de ModelState.isValid, afin de m'assurer que CustomerName = null
customerOrderModel.CustomerOrderHeader.CustomerName = null ;
-
J'ai essayé d'utiliser TryUpdateModel(customerOrderModel) mais j'obtiens le message d'erreur suivant :
TryUpdateModel a généré une exception de type 'System.MissingMethodException'
-
J'ai essayé de modifier les données json pour que le "Root" "CustomerOrderHeader" soit renommé en "customerOrderModel" pour correspondre au paramètre.
Rien de tout cela n'a fonctionné. Alors, qu'est-ce que je peux bien faire de mal pour que la validation ne fonctionne plus ? Quelles mesures puis-je prendre pour déboguer le problème ?
EDIT pour le conseillerBen
EDIT 2 pour counsellorben