Asp.net mvc Razor-如何从此.Page(DynamicWebPageBase.Page)转换为System.Web.UI.Page
我正在尝试将DotNetOpenAuth与Razor/MVC3一起使用。大多数DotNetOpenAuth HTML帮助程序都接受System.Web.UI.Page作为参数之一,这在使用WebForms引擎时非常标准,但在Razor中则不适用。是否可以以某种方式将动态WebPageBase.Page强制转换为System.Web.UI.PageAsp.net mvc Razor-如何从此.Page(DynamicWebPageBase.Page)转换为System.Web.UI.Page,asp.net-mvc,dotnetopenauth,razor,Asp.net Mvc,Dotnetopenauth,Razor,我正在尝试将DotNetOpenAuth与Razor/MVC3一起使用。大多数DotNetOpenAuth HTML帮助程序都接受System.Web.UI.Page作为参数之一,这在使用WebForms引擎时非常标准,但在Razor中则不适用。是否可以以某种方式将动态WebPageBase.Page强制转换为System.Web.UI.Page 谢谢,安东宁,他们是完全不同的对象。因此,不能强制转换或转换为System.Web.UI.Page 但是可能会对您有进一步的帮助。System.Web
谢谢,安东宁,他们是完全不同的对象。因此,不能强制转换或转换为System.Web.UI.Page
但是可能会对您有进一步的帮助。System.Web.UI.Page是Web表单页面模型的一部分,与Razor完全无关。Razor页面继承自System.Web.WebPages.WebPages,该页面不属于同一层次结构。正如GvS所提到的,“页面”属性在Razor中是一个不同的对象。在Razor中,该属性只是一个C#动态对象,它提供了访问PageData值的快捷方式。例如:
PageData[“foo”]
与Page.foo
您所指的DotNetOpenAuth中的哪个Html帮助程序类采用System.Web.UI.Page
?我可能会为你找到另一种方法来完成同样的事情。安德鲁,我特别谈论的是MVC OpenId助手,比如OpenIDSelectorScript。奇怪的是,我在下面看到这些帮助程序的新版本,不需要页面引用,但当我使用最新编译版本的DotNetOpenAuth.dll(谈论3.5.0.10259)时,它仍然有这些帮助程序的旧版本(我看到你在9月16日更改了该文件)。有没有任何原因说明为什么修改后的版本还没有被编译?非常感谢,Antoniv3.5还没有发布(它只是一个CTP)。每个正式版本都收集以前版本的所有修复。但听到这样的反馈有助于我们在发布版本或合并分支以解决此问题时确定优先级。非常感谢,伙计们。这两个答案都是正确的,我只是不能同时标记这两个,所以选择第一个:-)目前,我只是利用了一个事实,即您可以组合Razor和WebForms视图引擎,并简单地将那些需要页面引用的帮助程序封装到我从Razor视图调用的WebForms部分视图中。这样就可以了。断开的链接:404:找不到页面