2009-06-30 10 views
0

Comment recréer le formulaire pré-rempli avec des données publiées lorsque la validation échoue et que ValidationSummary est renvoyé. Je fais tirer les validateurs mais je ne peux pas trouver un moyen de préremplir le formulaire.Le formulaire invalidé dans MVC perd les données de formulaire qui sont postées

catch (Exception ex) 
{ 
    TempData["Message"] = "An Error Occured while saving the product!"; 
    ModelStateDictionary modelDictionary = Validation.UpdateModelStateWithRuleViolation(product, ViewData.ModelState); 
    TempData["ModelDataDict"] = modelDictionary; 
} 

En cas d'erreur, j'associez le ModelState à une variable TempData que je l'utilise, mais comment puis-je recréer le formulaire avec les données déjà affichées ...

+0

Vous pouvez déjà faire cela, mais je ne peux pas dire à partir du code que vous avez posté. Est-ce que vous réaffectez le modèle à la nouvelle vue que vous retournez? Si non, alors je ne pense pas que les données persisteront par la poste. –

+0

Vous pourriez être intéressé comment la validation est faite dans l'application exemple NerdDinner (http://nerddinnerbook.s3.amazonaws.com/Part5.htm, Handling Modifier les erreurs) –

Répondre

2

Assurez-vous que vous retournez le modèle de données qui a été trouvé invalide afin que le formulaire puisse se reconnecter aux mêmes données que celles envoyées.

De cette façon, vous ne perdez pas le contenu. Bien sûr, cela ne fonctionnera que si les entrées sont déjà liées au modèle de données. i.e .:

<label>Name</label> 
    <%=Html.TextBox("Name", Model.MyClass.Name)%> 
Questions connexes