2010-12-17 2 views
2

Razor/MVC3에서 DotNetOpenAuth를 사용하려고합니다. 대부분의 DotNetOpenAuth HTML 도우미는 System.Web.UI.Page를 매개 변수 중 하나로 받아들입니다. WebForms 엔진을 사용하여 정상적으로 작동하지만 Razor에서는 작동하지 않습니다. 어떻게 동적으로 WebPageBase.Page를 System.Web.UI.Page에 캐스팅 할 수 있습니까?면도기 - this.Page (동적 WebPageBase.Page)에서 System.Web.UI.Page로 캐스팅하는 방법

감사합니다, Antonin

+0

'System.Web.UI.Page'를 사용하는 DotNetOpenAuth의 Html 도우미 클래스를 언급하고 있습니까? 나는 너에게 똑같은 일을시키는 다른 방법을 찾을 수 있을지도 모른다. –

+0

Andrew, OpenIdSelectorScripts와 같은 MVC OpenId 도우미에 대해 구체적으로 말하고 있습니다. 이상한 점은 https://github.com/AArnott/dotnetopenid/blob/v3.4/src/DotNetOpenAuth/Mvc/OpenIdHelper.cs에서 페이지 참조가 필요하지 않지만 내가 가져갈 때 이러한 헬퍼의 새로운 버전을 볼 수 있다는 것입니다. 최신 컴파일 된 DotNetOpenAuth.dll 버전 (3.5.0.10259에 대해), 그것은 여전히 ​​이러한 헬퍼의 이전 버전이 있습니다 (나는 당신이 9 월 16 일에 그 파일을 변경 한 것을 본다). 왜 변화가 아직 버전을 컴파일하지 않았습니까? 많은 고마워, Antonin –

+0

v3.5는 아직 출시되지 않았습니다 (단 CTP). 각 공식 릴리스는 이전 버전 릴리스에 대한 모든 수정 사항을 수집합니다. 그러나 이와 같은 의견을 듣는 것은 버전을 릴리스하거나 분기를 병합 할 때 우선 순위를 정하는 데 도움이됩니다. –

답변

2

그들은 완전히 다른 개체입니다. 따라서 System.Web.UI.Page로 변환하거나 변환 할 수 없습니다.

그러나 this article은 더 도움이 될 수 있습니다.

+0

깨진 링크 : 404 : 페이지를 찾을 수 없습니다 – serhio

2

System.Web.UI.Page는 Web Forms 페이지 모델의 일부이며 완전히 Razor와 관련이 없습니다. 면도기 페이지는 동일한 계층 구조의 일부가 아닌 System.Web.WebPages.WebPage에서 상속받습니다. GvS에서 언급했듯이 "Page"속성은 Razor의 다른 개체입니다. Razor에서이 속성은 PageData 값에 액세스하기위한 바로 가기를 제공하는 C# 동적 개체 일뿐입니다. 예 : PageData["foo"]Page.foo과 같습니다.

+1

고마워요, 얘들 아. 두 대답은 모두 정확합니다. 둘 다 표시 할 수는 없으므로 첫 번째 선택 :-) 당분간 Razor 및 WebForms 뷰 엔진을 결합 할 수 있고 페이지 참조가 필요한 헬퍼를 WebForms 부분보기로 캡슐화했습니다. 면도기에서 전화하는거야. 이렇게하면 잘 작동합니다. –

관련 문제