2011-09-26 45 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-variable-through-content-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 
相关问题