2011-01-24 6 views
4

Je suis en train d'ajouter un peu de code que je suis de nerdinnererreur dynamique asp.net mvc 3.0 rasoir

@Html.OpenIdSelector(this.Page, new SelectorButton[] 
    { 
     new SelectorProviderButton("https://me.yahoo.com/", Url.Content("~/Content/Images/Account/Index/yahoo_64.png")), 
     new SelectorProviderButton("https://www.google.com/accounts/o8/id", Url.Content("~/Content/images/google.gif")), 
     new SelectorOpenIdButton(Url.Content("~/Content/images/openid.gif")), 
    }) 

mais je reçois cette erreur

Erreur 1 « System.Web.Mvc .HtmlHelper » n'a pas de méthode applicable nommée « OpenIdSelector », mais semble avoir une méthode d'extension de ce nom. Les méthodes d'extension ne peuvent pas être réparties de manière dynamique. Envisagez en argumentant les arguments dynamiques ou en appelant la méthode d'extension sans la syntaxe de la méthode d'extension.

Je n'ai aucune idée de ce qu'il veut.

Modifier

Je reçois ce maintenant

CS1928: 'System.Web.Mvc.HtmlHelper' ne contient pas de définition pour 'OpenIdSelector' et la meilleure méthode d'extension surcharge 'DotNetOpenAuth.Mvc.OpenIdHelper.OpenIdSelector (System.Web.Mvc.HtmlHelper, paramètres DotNetOpenAuth.OpenId.RelyingParty.SelectorButton [])' a quelques arguments invalides

Edit 2

Ils doivent avoir changé. Je vérifiais et ma version de dotnetopenauth ne prend pas en 2 paramètres seulement 1.

Version

dîners Nerd prend en 2.

Quoi qu'il en soit maintenant j'enlevé cela et obtenir ce

Erreur du serveur dans '/'Application. Le IHttpHandler actuel n'est pas l'un des types : System.Web.UI.Page, DotNetOpenAuth.IEmbeddedResourceRetrieval. Un fournisseur d'URL de ressources intégré doit être être défini dans votre fichier .config.

Répondre

7

OpenIdSelector est définie comme une méthode d'extension et vous ne devez pas passer le premier paramètre.Au lieu de cela vous l'appelez comme ceci:

@Html.OpenIdSelector(new SelectorButton[] {...}) 

Cela équivaut à l'appel suivant:

@OpenIdHelper.OpenIdSelector(this.Html, new SelectorButton[] {...}) 

Pour la deuxième Modifier à votre question, ressemble à ceci pourrait aider: InvalidOperationException thrown regarding DotNetOpenAuth.IEmbeddedResourceRetrieval with Razor view

1

La propriété Page est dynamique, et en tant que telle la méthode OpenIdSelector ne peut être entrepris avec une propriété dynamique. Essayez de caster la propriété Page:

@Html.OpenIdSelector((Page)this.Page, new SelectorButton[] { ... }); 
+0

maintenant je reçois (voir edit) – chobo2

+0

N'ayant jamais utilisé la méthode 'OpenIdSelector' je ne peux pas dire que je le connais. At-il un second paramètre (de la première syntaxe d'extension) de type 'Page'? –