2009-06-04 9 views
0

La plupart d'entre vous connaissent sûrement Nerddinner.com, et ma page ressemble beaucoup à ceci, alors imaginons faire ça à Nerddinner.Rendu formulaire partiel dans la boîte de dialogue jQuery

Lors de la modification d'un dîner, vous serez redirigé vers Dinners/Edit.aspx, et présenté de la vue partielle DinnerForm.ascx de type DinnerFormViewModel. Que se passe-t-il si vous ne voulez pas que ce DinnerForm soit présenté dans une boîte de dialogue jQuery UI?

Je pense: Sur la page où vous choisissez de modifier le dîner, vous aurez une div contenant la vue partielle DinnerForm:

<div id="editDinnerForm"> 
    <% Html.RenderPartial("DinnerForm", chosenDinnerToEdit); %> 
</div> 

Ainsi, lorsque vous sélectionnez un dîner à modifier, que div est présenté comme une boîte de dialogue jQuery UI, et le dîner choisi est donné à la vue partielle. (?!)

Ma question est comment je peux remplir la vue partielle du dîner en cours pour éditer?

Merci d'avance.

Répondre

1

Je ne sais pas si j'ai bien compris votre problème, pourquoi ne pouvez-vous pas charger la vue partielle via Ajax dans votre document? Dans cette cause, vous devriez juste quelque chose comme ceci:

<select onchange="$('#editDinnerForm').load(<url>,{dinner:this.value});"> 
    <option>Dinner1</option> 
    <option>Dinner2</option> 
</select> 

Vous pouvez également mettre en cache facilement ces demandes afin que vous n'avez pas de rendre ces formes partielles encore et encore ....

+0

On dirait un bonne solution. Je vais essayer. Mais un autre problème se pose ... Que faire si le formulaire est invalide et l'utilisateur est redirigé vers ce qui était la page d'édition? Comment puis-je faire apparaître la boîte de dialogue en cas d'erreur, afin que l'utilisateur soit représenté avec les messages d'erreur et les formulaires? –

+0

Dans ce cas, il devrait vous être assez facile de faire un pré-rendu du contenu sur le serveur (puisque vous connaissez sa sélection) ou de simplement faire la même requête Ajax dans la fonction $ (document) .ready (...) – pagid

Questions connexes