2009-11-24 6 views
0

En raison de la folie dans ce projet (trop longue histoire pour entrer maintenant), nous devons conserver les données dans le modèle du formulaire, mais ne pas l'afficher sur le formulaire sur la publication réussie, où la publication a été réussie -Comment réinitialiser les valeurs de formulaire dans asp.net mvc?

<%= Html.TextBox("FullName", "", new { @class = "required", title = "Full Name is required" })%> 

dosent semble faire l'affaire - et je ne peux pas réinitialiser le modèle dans le contrôleur, car le poste arrière, nous voulons un message (qui apparaît sur la même page) qui dit à peu près quelque chose comme « Merci pour votre question concernant XYZ (qui est ce qu'ils ont entré dans l'une des zones de texte) "

J'espère que cela a du sens.

Répondre

3

Sons comme un double de this question. Repose ma réponse ici.

Sonne comme un emploi pour le modèle PRG (post Redirect Get) parce que vous ne voulez pas les utilisateurs d'actualiser la page et lui faire soumettre à nouveau.

Pour ce faire, je mettrais un message ou drapeau dans votre TempData afin que vous puissiez inspecter que lorsque vous rediriger à l'URL d'origine pour afficher ensuite un message à l'utilisateur.

HTHS,
Charles

0

Essayez la surcharge de Html.TextBox qui ne prend pas une valeur:

Html.TextBox("FullName", 
    new { @class = "required", title = "Full Name is required" }) 
0

Après message, vous devez toujours rediriger pour éviter les problèmes avec resubmiting la forme. Si vous voulez afficher un message, vous pouvez utiliser TempData. Réglez simplement TempData ["ThankYouMessage"] avant de rediriger, puis, si la valeur est définie, affichez le message.

Ici vous pouvez lire TempData dans MVC 2:

http://weblogs.asp.net/jacqueseloff/archive/2009/11/17/tempdata-improvements.aspx 
Questions connexes