繁体   English   中英

asp.net mvc 3.0 razor中的动态错误

[英]dynamic error in asp.net mvc 3.0 razor

我想添加一些我从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提供程序。

OpenIdSelector被定义为扩展方法,您不必传入第一个参数。 相反,你这样称呼它:

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

这相当于以下调用:

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

对于您的问题的第二个编辑,看起来这可能会有所帮助: 针对具有Razor视图的DotNetOpenAuth.IEmbeddedResourceRetrieval抛出InvalidOperationException

Page属性是动态的,因此无法使用动态属性发送OpenIdSelector方法。 尝试转换Page属性:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM