2011-09-26 12 views
0

これはうまくいかないのですが、ログインしたユーザーを取得してその情報を表示するマスターページに機能がありますマスターページのユーザー。私は1つのプロパティを渡すことができるようにしたい(ロジックの流れに使うために、他のページにユーザーのロールを渡すことができる。)コンテンツページにプロパティを認識させられないようだ。マスターページからasp.net 4のコンテンツページに値を渡す方法

エラーメッセージは 'System。 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-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 
関連する問題