Confondre sur le retour méthode View() dans ASP.NET MVC4
Je suis nouveau dans ASP.NET MVC4 . Je suis à la lecture de ce tutoriel http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view . Je ne suis pas clair sur le retour méthode View (). Pour envoyer des données à partir de la vue du contrôleur , j'ai utilisé ce code
public ActionResult Index()
{
return View();
}
ici le retour à la méthode View() renvoyer des données à partir de la vue du contrôleur.
Pour envoyer des données de contrôleur de vue , j'ai utilisé ce code
public ActionResult Welcome(string name, int numTimes = 1)
{
ViewBag.Message = "Hello " + name;
ViewBag.NumTimes = numTimes;
return View();
}
Voici mon confus. Est le retour à la méthode View() retour ViewBag.Message et ViewBag.NumTimes à la vue de Bienvenue. OU de la valeur de la vue de Bienvenue de retour à l'Accueil de la méthode?
Merci de m'aider à effacer cette partie.
Vous devez vous connecter pour publier un commentaire.
Vous sont assez confus. Vous envoyez des valeurs à travers
ViewBag
à la vue de Bienvenue. Et une fois que le traitement de vue est fait, on vous retourne à celui qui a appelé à cette action.Les lignes
Réglage de la
ViewBag
valeur qui est utilisée par la vue de Bienvenue.Et puis
Sera de retour le Welocme Vue de l'utilisateur qui a demandé pour
Welcome
Action.
Edit 1
return View()
est fondamentalement une fonction à l'intérieur de laController
classe qui retourne une instance deViewResult
C'est comme
ou tout simplement
Plus sur ViewBag
Comment ViewBag dans ASP.NET MVC œuvres
Dans asp.net MVC si vous souhaitez envoyer des données de l'action et de la vue, vous pouvez envoyer un type de données ou viewbag/viewdata que vous avez utilisé dans votre échantillon, prendre un coup d'oeil:
vous pouvez avoir quelque chose comme ceci dans votre point de vue:
mais, ViewBag et ViewData est juste pour l'envoi d'informations de l'action à la vue, et pour l'envoi de vue de l'action que vous devriez passer un type(Modèle ou viewModel):
donc, à votre avis, vous devez lier le modèle:
et, enfin, quand vous voulez passer le modèle de l'action, vous devez agir comme ceci:
Cette signature de fonction indique qu'une "action" de la méthode retourne un résultat (comme vous pouvez le voir le type de retour ActionResult). C'est une classe abstraite dire ASP.NET MVC comment écrire que suite à la Réponse. Vous devez explorer les différents types de résultats de l'action:
http://msdn.microsoft.com/en-us/library/system.web.mvc.actionresult(v=vs. 118).aspx
Ces différents types de résultats de l'action sont les sous-classes de ActionResult comme HttpStatusCodeResult, JsonResult ou RedirectResult. Si vous retournez (Vue de), vous devez renvoyer un objet qui raconte ASP.NET MVC qu'elle devrait rendre les cshtml page, si vous retournez HttpNotFound(); par exemple, le navigateur va obtenir 404. Vous pouvez vous essayer à plusieurs types de valeurs de retour en retournant les résultats de la méthode de Système.Web.Mvc.Contrôleur, par exemple:
Ou si vous êtes à la recherche pour une explication plus détaillée, consulter cette page:
http://msdn.microsoft.com/en-us/library/dd410269(v=vs. 100).aspx
Ce sont simplement des fonctions d'assistance qui permettra de combler la réponse à la demande. Sans eux, vous devez écrire la Réponse.OutputStream le contenu est analysé à partir d'un cshtml fichier, et rempli avec le ViewBag propriétés, et vous même aurait à définir les en-têtes http de Réponse.ContentType et de la Réponse.AddHeader("Content-Length", 123213);.
En disant cela, vous pouvez maintenant utiliser les valeurs de
ViewBag.Message
etViewBag.NumTimes
à votre Vue.La déclaration
return View()
ne retourne pas ViewBag. Par défaut, il renvoie une Vue avec le même nom que votre nom d'action ou renvoie une vue personnalisée dire mavue.cshtml si vous fournir explicitement le nom de la vue commereturn View("myView")
D'autre part ViewBag est simplement un moyen de transmettre des données à partir de votre contrôleur à votre vue.
return View()
sera de retour leView
(ie. Bienvenue.cshtml ou de Bienvenue.aspx) pour laAction
Bienvenue.En définissant des propriétés dans la
Viewbag
vous pouvez simplement transmettre des valeurs à laView
qui peuvent être utilisés là, le long de votre code HTML.