2011-07-01 4 views
1

J'ai une vue partielle simple qui retourne (rend) une liste de synonymes d'un mot donné. Ensuite, je voudrais utiliser cette vue partielle dans une autre vue et j'utilise @Html.RenderPartial("SynonymFinder", new { word = "Something" }) à l'intérieur de ma vue. Mais j'obtenir cette erreur:RenderPartial ne fonctionne pas

CS1502: Le match de la meilleure méthode surchargée pour « System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult) » a des arguments invalides

C'est la plus simple scénario. J'ai même supprimé les paramètres et utilisé @Html.RenderPartial("SynonymFinder"), mais toujours le même problème. Qu'est-ce qui ne va pas?

+1

Pour plus d'informations sur les différences entre '' Partial' et RenderPartial' voir cette réponse. http://stackoverflow.com/questions/5248183/html-partial-vs-html-renderpartial-html-action-vs-html-renderaction/5248218#5248218 –

Répondre

4

Dans MVC 3, vous devez utiliser:

@Html.Partial("SynonymFinder", new ViewDataDictionary { { word = "Something" } }) 

Notez que le 2ème paramètre est de type ViewDataDictionary. Si vous ne le transmettez pas explicitement comme ça, l'assistant utilisera la surcharge qui prend un object comme second paramètre et l'utilise comme modèle plutôt que comme valeur de route.

0

Vous devez créer un modèle avec le mot sur le terrain

public class SynonymFinderModel 
{ 
    public string Word {get; set;} 
} 

Alors, à votre avis, vous avez

@Html.Partial("SynonymFinder", new SynonymFinderModel { Word = "something"}) 
Questions connexes