如何将值从主页传递到asp.net 4中的内容页面

时间:2011-09-26 21:28:32

标签: asp.net master-pages

我不知道为什么这不起作用,但我在主页上有一个函数,它获取登录用户,然后在母版页上显示有关该用户的信息。我希望能够传递一个属性(用户角色到其他页面用于逻辑流。我似乎无法让内容页面识别属性。

错误消息是 'System.Web.UI.MasterPage'不包含'Role'的定义,也没有扩展方法'Role'接受类型为'System.Web.UI.MasterPage'的第一个参数'(你是否缺少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;

        }
    }

2 个答案:

答案 0 :(得分:3)

Page上的“Master”属性返回System.Web.UI.MasterPage类型。在调用该类的函数之前,需要将其强制转换为特定类型(SiteMaster)。

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

答案 1 :(得分:0)

您需要将Master转换为母版的类型 - SiteMaster ...

string testRole = ((SiteMaster)Page.Master).Role
相关问题