Supposons que j'ai cette vue partielle:
Your name is <strong>@firstName @lastName</strong>
qui est accessible via une action enfant uniquement comme:
[ChildActionOnly]
public ActionResult FullName(string firstName, string lastName)
{
}
Et je veux utiliser cette vue partielle dans une autre vue avec:
@Html.RenderPartial("FullName")
En d'autres termes, je veux pouvoir passer firstName et lastName de la vue à la vue partielle. Comment dois-je faire ça?
asp.net-mvc
asp.net-mvc-3
model-view-controller
controller
asp.net-mvc-partialview
Saeed Neamati
la source
la source
Réponses:
Utilisez cette surcharge (
RenderPartialExtensions.RenderPartial
sur MSDN ):alors:
la source
@Html.Partial()
est le même@{Html.RenderPartial();}
mais beaucoup plus joli. Ils ont également les mêmes surcharges.Model.firstName
et leurs semblables lancent une exception quiobject doesn't have a 'firstName' property
Voici une autre façon de le faire si vous souhaitez utiliser ViewData:
Et pour récupérer les valeurs passées:
la source
Vous devez créer un modèle de vue. Quelque chose comme ça devrait faire ...
puis à partir de votre résultat d'action, passez le modèle
et vous pourrez accéder
@Model.FirstName
et en@Model.LastName
conséquence.la source
assurez-vous d'ajouter {} autour de Html.RenderPartial, comme:
ne pas
la source
{ }
, j'ai perdu du temps jusqu'à ce que je trouve cet articleCe qui suit fonctionne pour moi sur dotnet 1.0.1 :
./ourView.cshtml
./_ourPartial.cshtml
la source
Juste:
la source