2009-12-21 4 views
0

J'ai ajouté une erreur et une validation métier à mon application, et lorsque j'ai testé une vue fortement typée sur un modèle , disons les emplacements, je reçois le résumé de validation ainsi que les messages de validation pour chaque champ qui ne passe pas, plus mon css met en évidence le champ approprié comme prévu ...Validation d'erreur ASP.Net MVC - Comment afficher le message de validation lors du passage d'un modèle de vue personnalisé à une vue

... quand j'essaye ceci avec un Voir qui est fortement typée à un modèle de vue personnalisée, disons que je l'ai passé l'emplacement - afin que l'utilisateur puisse entrer dans une nouvelle, ainsi que

IEnumerable<Location> locations 

, il énumérera OU t tous les emplacements existants sous le nouveau formulaire d'emplacement. Quand je fais cela, j'obtiens le résumé de validation, mais le message pour chaque champ n'est pas affiché, et le CSS n'applique pas le * et la surbrillance à chaque champ incorrect. J'utilise Linq to SQL, j'ai donc ajouté toute ma validation en tant que classes partielles, donc dans ce cas, toute la validation vient de l'emplacement partiel de la classe, qui, à mon avis, compilera avec le fichier du concepteur linq à sql créé et ajouter ma validation d'entreprise. Ce problème se produit-il parce que je ne transmets pas la vue MyApp.Models.Location et que je lui transmets MyApp.Models.MyCustomViewModel? si oui, quelle est ma meilleure approche pour que je puisse utiliser un seul formulaire pour créer et liste?

Répondre

0

j'ai pu obtenir ce travail - j'ai changé la valeur de retour dans ma méthode POST pour renvoyer

return View(new MyCustomViewModel(location) { }); 

au lieu de

return RedirectToAction(new MyCustomViewModel(location) { }); 

espérons que cette aide si quelqu'un tombe par hasard sur le même problème que je a fait - ce qui était mon propre malentendu sur la façon dont View fonctionne différemment de RedirectToAction.

Questions connexes