【发布时间】:2010-09-28 17:14:45
【问题描述】:
我不好意思在这里问这个问题,因为它显然已经在 StackOverflow 上重复了好几次。我读过很多东西,包括:
http://msdn.microsoft.com/en-us/library/xxwa0ff0
http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx
我想我已经完全按照那些文章所说的做了,但这对我不起作用。
这是我的母版页的顶部,名为“MasterNoNews.master”:
<%@ Master Language="C#" %>
<%@ Import Namespace="MyMediHealth.DataAccess" %>
<%@ Import Namespace="MyMediHealth.DataAccess.Containers" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public virtual UserContainer CurrentUser;
protected void Page_Load(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
CurrentUser = new MembershipQueries().getUserFromUserIdName(Page.User.Identity.Name);
}
</script>
这是我的子页面的顶部,名为“MyProfile.aspx”:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterNoNews.master"
AutoEventWireup="true" CodeBehind="MyProfile.aspx.cs"
Inherits="MyMediHealth.Interface.MyProfile" %>
<%@ MasterType VirtualPath="~/MasterNoNews.master" %>
这是我的子页面上的代码隐藏,名为“MyProfile.aspx.cs”,但不起作用:
using System;
using System.Web.UI;
using MyMediHealth.DataAccess.Containers;
using MyMediHealth.DataAccess;
namespace MyMediHealth.Interface
{
public partial class MyProfile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// doesn't work
UserContainer user = Master.CurrentUser;
// also doesn't work
UserContainer user = ((MasterNoNews)this.Master).CurrentUser
}
}
}
在第一种情况下,VS 告诉我 System.Web.Ui.MasterPage 不包含 CurrentUser 的定义。在第二种情况下,VS 说找不到类型或命名空间“MasterNoNews”。
我做错了什么?
【问题讨论】:
标签: asp.net master-pages