2010-06-11 5 views
0

J'ai une page ASPX qui rend une page de recherche ascx qui remplira à son tour une grille sur la page ASPX principale. A part ça, j'ai aussi une page ascx qui télécharge des fichiers, comme ceci:Comment poster seulement une partie ASCX spécifique au lieu de la page entière

<form method="post" action="<%= Url.Action("UploadFile") %>" enctype="multipart/form-data"> 
     <fieldset> 
      <input type="file" name="file" id="file" /> 
      <%=Html.ButtonSubmit("Upload") %> 
      </fieldset></form> 

Voici le problème: imaginez que j'ai cherché une seule entrée à afficher sur la grille. La grille affiche cette entrée unique et après, je télécharge un fichier et appuie sur le bouton "Télécharger". La page entière est publiée et le contenu de la grille est perdu, affichant maintenant tous les résultats disponibles. Que puis-je faire pour éviter que cela se produise, en maintenant l'état de la grille (nous n'utilisons pas ViewState) ou en ne publiant pas toute la page mais seulement l'ascx avec le téléchargement du fichier?

Note: Je suis nouveau à MVC.

Répondre

1

Votre vue partielle est rendue à l'intérieur de votre HTML ... il en résulte un seul fichier HTML "statique" sans la possibilité de soumettre et de recharger seulement certaines parties de celui-ci.

Je peux imaginer deux façons de résoudre votre problème:

1) Placez votre upload-formular dans un HTML iFrame ... maintenant que ce iFrame se reload sur soumettre. Problème: Communication entre parent et enfant pour que les données téléchargées soient disponibles, en fonction du type d'action que vous souhaitez effectuer après le téléchargement.

2) Utilisez jQuery/AJAX pour créer une soumission basée sur javascript (http://api.jquery.com/jQuery.post/) et rafraîchissez dynamiquement le contenu de votre page avec jQuery/JavaScript. Ce serait ma façon préférée, mais a besoin de plus de connaissances sur jQuery/JavaScript.

BTW: jQuery est presque un must-have pour toute application mvc asp.net ;-)

Bienvenue sur MVC :-)

+0

Merci pour votre aide Olaf, et je creuser un peu dans jQuery. – Hallaghan

+0

Ça vaut vraiment le coup - ça m'a beaucoup simplifié la vie ... :-) – OlafW

Questions connexes