2011-09-26 3 views
0

이것이 작동하지 않는 이유는 모르겠지만 마스터 페이지에서 로그인 한 사용자를 가져온 다음 그 정보를 표시합니다 사용자를 마스터 페이지에 추가합니다. 하나의 속성 (논리 흐름에 사용할 다른 페이지의 사용자 역할)을 전달할 수 있기를 원합니다. 콘텐츠 페이지에서 속성을 인식 할 수없는 것 같습니다.마스터 페이지에서 asp.net의 콘텐츠 페이지로 값을 전달하는 방법 4

오류 메시지는 '시스템입니다. Web.UI.MasterPage '에'Role '에 대한 정의가없고'System.Web.UI.MasterPage '유형의 첫 번째 인수를 허용하는'Role '확장 메서드가 없습니다 (using 지시문이나 어셈블리가 누락 되었습니까?) 참조?) '

어떤 아이디어?

public partial class SiteMaster : System.Web.UI.MasterPage 
{ 

    private string role = "Manager"; 

    public string Role 
    { 
     get 
     { 
      return role; 
     } 
     set 
     { 
      role = value; 
     } 
    } 
protected void Page_Load(object sender, EventArgs e) 
    { 
    ...get current logged in user data and display appropriate fields in the master page. 
} 

}

컨텐츠 페이지

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Portal.aspx.cs" Inherits="Portal" ClientIDMode="AutoID" %> 
<%@ MasterType VirtualPath="~/Site.Master" %> 

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> 

콘텐츠 page.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 

      string testRole = Master.Role; 

     } 
    } 
+0

이전에 여기에 질문 : http://stackoverflow.com/questions/3651326/asp- net-access-a-master-page-content-through-page- – David

답변

2

페이지의 "마스터"속성은 타입 System.Web.UI.MasterPage을 반환합니다. 해당 클래스의 함수를 호출하기 전에 특정 유형 (SiteMaster)으로 캐스트해야합니다.

SiteMaster siteMaster = Master as SiteMaster; 
if (siteMaster != null) { myVar = siteMaster.Role; } 
+0

답변이 게시 된 거의 같은 시간에 나는 그것을 알아 냈습니다. 언제나처럼, 너희들은 흔들린다. – Rhonda

0
당신은 당신의 마스터 페이지의 유형에 주인을 캐스팅해야합니다

- SiteMaster ...

string testRole = ((SiteMaster)Page.Master).Role 
관련 문제