динамическая ошибка в бритве asp.net mvc 3.0 - PullRequest
4 голосов
/ 25 января 2011

Я пытаюсь добавить некоторый код, который я получил от nerdinner

  @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")),
    }) 

, однако я получаю эту ошибку

Ошибка 1 'System.Web.Mvc.HtmlHelper' имеетнет подходящего метода с именем «OpenIdSelector», но, похоже, есть метод расширения с этим именем.Методы расширения не могут быть динамически отправлены.Попробуйте привести динамические аргументы или вызвать метод расширения без синтаксиса метода расширения.

Понятия не имею, чего он хочет.

Редактировать

Я получаю это сейчас

CS1928: «System.Web.Mvc.HtmlHelper» не содержит определения для «OpenIdSelector» и лучшей перегрузки метода расширения «DotNetOpenAuth.Mvc.OpenIdHelper.OpenIdSelector (System.Web.Mvc.HtmlHelper, params DotNetOpenAuth.OpenId.RelyingParty.SelectorButton []) 'имеет несколько недопустимых аргументов

Изменить 2

Они должны иметьизменил это.Я проверял, и моя версия dotnetopenauth не принимает только 2 параметра. 1.

Версия для ужина с ботаником занимает 2.

В любом случае, теперь я удалил это и получил это

Ошибка сервера в «/» приложении.Текущий IHttpHandler не относится к одному из типов: System.Web.UI.Page, DotNetOpenAuth.IEmbeddedResourceRetrieval.В вашем файле .config должен быть указан поставщик URL-адреса встроенного ресурса.

Ответы [ 2 ]

7 голосов
/ 25 января 2011

OpenIdSelector определяется как метод расширения, и вам не нужно передавать первый параметр.Вместо этого вы называете это так:

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

Это эквивалентно следующему вызову:

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

Для второго редактирования вашего вопроса это может помочь: InvalidOperationException, генерируемый относительно DotNetOpenAuth.IEmbeddedResourceRetrieval с представлением Razor

1 голос
/ 25 января 2011

Свойство Page является динамическим, и поэтому метод OpenIdSelector нельзя передать динамическим свойством. Попробуйте применить свойство Page:

@Html.OpenIdSelector((Page)this.Page, new SelectorButton[] { ... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...