Faire HttpPost demande à une méthode d'action dans un ASP.NET contrôleur MVC
Je suis en train de construire une fonctionnalité où j'ai besoin de créer un profil de candidat dans notre application. Il y a deux étapes/UI pour créer un profil de candidat:
1 - Créer un modèle...où l'utilisateur entre les informations du candidat.
2 - Aperçu du modèle...où l'utilisateur sera montré un aperçu de la façon dont leur profil pourrait ressembler une fois qu'ils ajoutent le profil de notre système.
J'ai déjà créé les points de vue à l'appui de ces de l'INTERFACE utilisateur via un contrôleur appelé "CandidateController" qui contient quelques méthodes d'action:
1- [HttpGet] "Créer" qui renvoie un Créer un modèle.
[HttpGet]
public ViewResult Create()
2- [HttpPost] "Aperçu" qui renvoie à un modèle d'Aperçu.
[HttpPost]
public ActionResult Preview(ProfileViewModel viewModel)
Maintenant ce dont j'ai besoin pour mettre en œuvre est d'avoir un bouton/lien de la Créer un modèle qui permettrait d'appeler la méthode d'action [HttpPost] Aperçu dans le contrôleur.
Défi
Je suis également se demander si il ya une manière que le modèle de classeur serait de charger le ViewModel objet pour moi si je suis capable d'appeler le HttpPost Aperçu de la méthode d'action de la première de créer de modèle.
Je suis à la recherche d'une suggestion/aider à la meilleure façon d'atteindre ce genre de fonctionnalité.
Toute aide sera grandement appréciée.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser soit un formulaire standard ou un appel AJAX pour appeler l'Aperçu suivant l'action et de transmettre toutes les valeurs de propriété de la vue modèle. Toutes les valeurs que vous transmettez cette demande seront les valeurs qui seront liés par le modèle de classeur par défaut. Voici un article expliquant comment le modèle de classeur par défaut attend les paramètres pour être nommé pour plus de structure complexe, telles que les listes et les dictionnaires.
Exemple avec AJAX:
Si vous ne souhaitez pas utiliser AJAX vous pouvez utiliser un formulaire standard avec des champs cachés:
OK, donc voici les options que j'ai eu à se déplacer:
Et si vous ne voulez pas utiliser de l'Ajax, au lieu d'utiliser des champs Cachés, vous pouvez simplement utiliser la TempData propriété dans MVC, c'est comment j'ai mis en place mon fonctionnalités spécifiques à l'aide de TempData. p.s.ci-dessous...
Donc, cette solution a fonctionné assez bien pour moi, où je n'ai pas d'écrire le code JavaScript ou inutiles HTML. ET merci Darin pour m'orientant vers un point de départ.