使用母版页的问题

cloudgamer 2008-11-07 08:45:38
我想在母版页中判断会员并获取信息
但我发现母版页的Page_Load是在主页面的Page_Load后面执行的
这样主页面Page_Load中就不能从母版页获取母版信息
请问母版页的程序放在哪里才能先于主页面的Page_Load执行
...全文
171 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfdsdfsfsd 2008-11-09
  • 打赏
  • 举报
回复
lz面向对象还没理解一点点吗?
那就不要开发asp.net了
继续控制台吧。
继承page类如下

public class BasePage:page
{

}

然后再每个页面的类名后面把page改为basepage
比如default页
public class default:basepage
{
public void ......
}
yufeizhan 2008-11-09
  • 打赏
  • 举报
回复
继承自 一个 自定义的 page类

这句我还是没有怎么弄懂啥意思,

比如要在list.aspx.cs中继承这个,如何写。
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ashiy 的回复:]
我在书上看到一个page_loadComplete,这个事件是页面加载结束时激发的

你可以试一试
[/Quote]

非常好!

实际上,什么代码都硬塞在page_load中,这是自找麻烦的。在看到你的这个问题时,我看到你也知道母版页中的page_load是装载时执行一些逻辑,而aspx中的page_load中的代码根本不是状态阶段的逻辑而是呈现阶段的逻辑。page_load是用来写页面装载阶段的逻辑的,不要把与装载无关的代码写在这里,应该写在Page_PreRender或者其它事件中。
ashiy 2008-11-09
  • 打赏
  • 举报
回复
我在书上看到一个page_loadComplete,这个事件是页面加载结束时激发的

你可以试一试
xrm2007 2008-11-07
  • 打赏
  • 举报
回复
强烈建议楼主采用四楼朋友的方法,我也是这么做的,这样做是一种规范,把所有关于验证的方法写到一起,将来代码管理起来比较方便,也许你现在改一下会比较麻烦,但从长远角度来看,这种方法还是好的
cloudgamer 2008-11-07
  • 打赏
  • 举报
回复
??
cloudgamer 2008-11-07
  • 打赏
  • 举报
回复
这样比较麻烦啊
每个页面都要改
有没有只修改母版页就能解决的
wanghao3616 2008-11-07
  • 打赏
  • 举报
回复
这样 母版页的 pageload 中 就不要判断什么 用户登录拉
所有的需要判断用户状态的 页面 都继承自 这个 page类
wanghao3616 2008-11-07
  • 打赏
  • 举报
回复
继承自 一个 自定义的 page类
里面 做 用户处理
我一个简单的参考下

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// UserPage 的摘要说明
/// </summary>
public class UserPage:Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
base.Load += new EventHandler(this.PageBase_Load);
base.Error += new EventHandler(this.PageBase_Error);
}
protected void PageBase_Error(object sender, EventArgs e)
{
Exception lastError = base.Server.GetLastError();
string s = "<link rel=\"stylesheet\" href=\"/style.css\">";
string str2 = s;
s = str2 + "<h1>系统错误:</h1><hr/>系统发生错误, 该信息已被系统记录,请稍后重试或与管理员联系。<br/>错误地址: " + base.Request.Url.ToString() + "<br/>错误信息: <font class=\"ErrorMessage\">" + lastError.Message.ToString() + "</font><hr/><b>Stack Trace:</b><br/>" + lastError.ToString();
base.Response.Write(s);
base.Server.ClearError();
}
private void PageBase_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
if (User.Identity.IsAuthenticated)
{
if (Session["UserDetails"] == null)
{
BLL.userDetails bl_userdetails = new BLL.userDetails();
Model.asa_UserDetails mo_userdetails = bl_userdetails.GetUserDetails(User.Identity.Name);
Session.Add("UserDetails", mo_userdetails);
Session.Add("UserId", mo_userdetails.userId);
}
}
else
{
Session.Add("UrlReferrer",Request.Url);
base.Response.Write(@"<script defer>window.alert('您没有权限进入本页!\n请您重新登录或与管理员联系');location='../login.aspx';</script>");
base.Response.End();
}
}
}
}

cloudgamer 2008-11-07
  • 打赏
  • 举报
回复
谁知道怎么解决啊
melon23 2008-11-07
  • 打赏
  • 举报
回复
学习下
ashiy 2008-11-07
  • 打赏
  • 举报
回复
嗯,我也遇到过类似的问题

帮顶一下

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧