【发布时间】:2017-12-13 23:29:33
【问题描述】:
我已经阅读了所有我能找到的关于如何做到这一点的帖子,并尝试了所有这些。我有一个名为 DNAStaff(根目录)的母版页,其中包含:-
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="DNAStaff.master.cs" Inherits="DNAStaff" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
<link href="~/Styles/DNA.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
...............
</div>
</form>
</body>
</html>
后面的Masterpage代码包括:-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.IO;
using System.Data;
public partial class DNAStaff : System.Web.UI.MasterPage
{
public string MyAccessLevel
{
get; set;
}
protected void Page_Load(object sender, EventArgs e)
{
string ConnectionString = "Data Source=NZ1;Initial Catalog=Intranet;Integrated Security=false;UID=IntranetAccess;PWD=*****";
string sqlstring = @"select [MenuID], [Item], Target, SecLevel from [MENUS] ";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlDataReader rdr = null;
int MainGroup;
try
{
if (Request.Cookies["userinfo"] != null)
{
MyAccessLevel = Server.HtmlEncode(Request.Cookies["userinfo"]["accessLevel"]);
}
else
{
MyAccessLevel = "1";
}
.........
内容页面包括:
<%@ Page Title="" Language="C#" MasterPageFile="~/DNAStaff.master" AutoEventWireup="true" CodeFile="main.aspx.cs" Inherits="main" %>
<%@ MasterType virtualpath="~/DNAStaff.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
Set Primary Project
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>
enter code here
并且后面的内容页面代码包含:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class main : System.Web.UI.Page
{
string AccessLevel = "";
protected void Page_Load(object sender, EventArgs e)
{
AccessLevel = Master.MyAccessLevel;
TextBox1.Text = AccessLevel;
}
}
“AccessLevel = Master.MyAccessLevel”行给出错误:-
错误 CS1061 'MasterPage' 不包含 'MyAccessLevel' 并且没有扩展方法 接受“MasterPage”类型的第一个参数的“MyAccessLevel”可能是 找到(您是否缺少 using 指令或程序集引用?) 8_Live_main.aspx D:\Development\dnanew.steelpencil.com\Live\main.aspx.cs 13 活跃
我想在加载时在 MasterPage 中设置变量 MyAccessLevel 并在任何内容页面中读取它。我显然错过了一些东西,有人可以帮忙吗?
【问题讨论】:
标签: c# asp.net master-pages public