2010-11-23 7 views
0

Je rends une vue partielle fortement typée dans une page dynamique. J'ai une méthode (xyz) dans le contrôleur qui remplit le modèle.Vue partielle fortement typée

Comment puis-je remplir le modèle et rendre cette vue partielle

j'ai essayé ce

<% Html.RenderPartial("partialviewname",xyz()); %> 

mais je reçois construire erreur indiquant aucune référence pour xyz(), j'ai ajouté ma classe de contrôleur comme référence et pas de chance

ai-je rien manqué?

Répondre

1

Qu'est-ce que xyz() ???

Quoi qu'il en soit .... dans votre contrôleur ajouter une action comme celui-ci

[HttpGet] 
public virtual ActionResult Create() { 
    MyModel dm = _manager.CreateMyModel(); 
    return PartialView("MyModelView", dm); 
} 

puis créez une vue partielle nommé « MyModelView » qui est fortement typée à la classe de MyModel et que vous avez fait.

Si vous avez besoin d'aide s'il vous plaît modifier votre question et ajouter un peu plus de code de votre échantillon

1

Vous ne pouvez pas appeler des méthodes du contrôleur directement dans la vue. Je déduis de votre question que ce dont vous avez besoin est Html.RenderAction ("xyz") au lieu de Html.RenderPartial. L'action xyz peut ensuite récupérer le modèle et renvoyer une vue partielle (voir la réponse de Lorenzo) qui sera ensuite rendue dans la vue principale.

0

Appelez la méthode xyz() avant l'appel à RenderPartial.

<% 
var myController= ViewContext.Controller as YourControllerClass; 
var myModel = myController.xyz(); 
%> 

Et vous pouvez alors utiliser le var myModel:

<% Html.RenderPartial("partialviewname", myModel); %> 
Questions connexes