마스터 페이지에서 대체 컨트롤을 사용하고 있습니다. 대체 사이트에서 사용자 컨트롤 콘텐츠 (내 웹 사이트의 로그인 영역과 관련 있음)를 렌더링하려고합니다. . 컨트롤을 렌더링 할 수 있도록 요청한 페이지에 대한 참조가 있어야합니다. 하지만 내 웹 사이트의 여러 페이지에 걸쳐 공유되므로 마스터 페이지 자체에서 컨트롤을 렌더링해야합니다. 이를 달성하기위한 지침은 무엇입니까?마스터 페이지 코드 숨김에서 ASP.NET 컨트롤 렌더링
TKS
마스터 페이지에서 대체 컨트롤을 사용하고 있습니다. 대체 사이트에서 사용자 컨트롤 콘텐츠 (내 웹 사이트의 로그인 영역과 관련 있음)를 렌더링하려고합니다. . 컨트롤을 렌더링 할 수 있도록 요청한 페이지에 대한 참조가 있어야합니다. 하지만 내 웹 사이트의 여러 페이지에 걸쳐 공유되므로 마스터 페이지 자체에서 컨트롤을 렌더링해야합니다. 이를 달성하기위한 지침은 무엇입니까?마스터 페이지 코드 숨김에서 ASP.NET 컨트롤 렌더링
TKS
그래서 당신은 코드 뒤에 MasterPage에서 사용자 컨트롤을 렌더링 및 마스터 페이지도의 대체 선수로 추가 하시겠습니까? 마스터를 사용하는 페이지에 대한 참조가 필요한 이유는 무엇입니까?
하여 사용 VB되어 있다고 가정하고, 나는 당신의 질문을 이해하고, 코드 뒤에 MasterPage이 시도 : 나는 사용자 정의 컨트롤을로드 할 수 있었다
Dim someControl As MyControl = CType((New Page()).LoadControl("~/Path/To/MyControl.ascx"), MyControl)
mySubstitution.Controls.Add(someControl)
내가 추천하는 대체 컨트롤은 출력 된 캐시 된 페이지에 사용되는 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.substitution.aspx입니다. (: – gsb
하지만, ASP.NET 상태에 대한 그 정보를 불평 유효하지 않거나 손상되었습니다. 다음과 같이 사용자 정의 컨트롤을로드했습니다. 페이지 pageHolder = 새 페이지(); UserControl viewControl = (UserControl) pageHolder.LoadControl ("MyControl.ascx"); pageHolder.Controls.Add (viewControl); StringWriter 출력 = new StringWriter(); HttpContext.Current.Server.Execute (pageHolder, output, false); return output.ToString(); – gsb
페이지가 제공 될 때 pageHolder가 자동으로 렌더링되지 않습니까? 왜 당신이 먼저 렌더링하는지 모르겠습니다. 또한 사용자 정의 컨트롤에 폼 컨트롤이 있지만 그 주변에 '