Passer le viewbag à la vue partielle du contrôleur d'action
J'ai un mvc vue avec une vue partielle.Il y a un ActionResult méthode dans le contrôleur qui sera de retour une PartialView. Donc, j'ai besoin de passer ViewBag données à partir de ce ActionResult méthode à Vue Partielle.
C'est mon Contrôleur
public class PropertyController : BaseController
{
public ActionResult Index()
{
return View();
}
public ActionResult Step1()
{
ViewBag.Hello = "Hello";
return PartialView();
}
}
Dans L'Index.cshtml Vue
@Html.Partial("Step1")
Étape 1.cshtml vue partielle
@ViewBag.Hello
Mais ce n'est pas de travail. Alors, quelle est la bonne manière d'obtenir des données de viewbag.
Je pense que je suis mauvaise méthode. Merci de me guider.
source d'informationauteur cp100
Vous devez vous connecter pour publier un commentaire.
"Enfant des actions de suivre un autre contrôleur/modèle/vue du cycle de vie de parent actions. En conséquence, ils ne partagent pas ViewData/ViewBag."
La réponse fournit une autre façon de transmettre des données.
Un enfant d'action de la part de la même ViewBag avec ses "parents" l'action?
Vous pouvez l'utiliser comme mentionné ci-dessous :
De votre point de Vue :
Et Votre Vue partielle :
Comme Indiqué Ci-Dessus ViewBag.Message sera transmis à la vue partielle. et dans votre vue partielle, vous pouvez l'utiliser comme un @Modèle.
Remarque : ici le type de ViewBag.Message est chaîne. Vous pouvez passer n'importe quel type.
Si vous n'avez pas à utiliser ViewBag, vous pouvez utiliser TempData. TempData est partagée par l'ensemble de la chaîne d'exécution.
Dans L'Index.cshtml Vue
Étape 1.cshtml vue partielle
Vous pouvez essayer ce pour passer le ViewBag à vue partielle de l'action:
De votre contrôleur:
Votre point de vue (de l'Index.cshtml):
Votre vue partielle (_Partial1.cshtml):
Une vieille question, mais si quelqu'un ici à trouver une solution pour cette question..
Vous pouvez passer viewbag valeur partielle avec viewdatadictionary.
De votre point de vue:
et en vue partielle de l'utiliser comme ceci: