当前位置: 代码迷 >> ASP.NET >> asp.net前后台互动访问有关问题
  详细解决方案

asp.net前后台互动访问有关问题

热度:885   发布时间:2013-02-25 00:00:00.0
asp.net前后台互动访问问题
假如我现在有个a.aspx页面
cs下面写着如下:
C# code
public Web.Mod.VIP vip;    protected void Page_Load(object sender, EventArgs e)    {        if (Session["user"] == null)        {            PageBase.alert(Page, "登陆超时,请重新登陆", "/VIP/Login.aspx");            return;        }        vip= (Web.Mod.VIP)Session["user"];    }


上面不能看出vip是读取的登陆信息,前台如下:
C# code
<span class="kafeiseleft">欢迎您,<span class="red"><%=vip.Name %></span>, 这是您第 <span class="red2"><%=vip.Count+1 %></span> 次登陆,您上次登陆时间为: <%=vip.EndTime %>

当session为null的时候应该提醒登陆,可每次都是报:未将对象引用设置到对象的实例。 
有如下两个问题求解:
1。如果是说前台先执行的,那为何session有值的时候前台先执行还能读到?
2。如果是后台的load先执行的,那么为什么session为null的时候不报未登陆,而是报的前台vip为null的错?
3。除了用label代替前台的%之外,有没有一个两全其美之道?可以让session为null的时候报未登陆,而不是报前台的错

------解决方案--------------------------------------------------------
哎,asp.net前后台混搭的搞法,搞坏了多少人的脑子哦。。。。。。。
------解决方案--------------------------------------------------------
对啊,如果为null的话,前台是读取不到值的,当然报错啦。

你需要首先处理一下
C# code
public Web.Mod.VIP vip;    protected void Page_Load(object sender, EventArgs e)    {        if (Session["user"] == null)        {            PageBase.alert(Page, "登陆超时,请重新登陆", "/VIP/Login.aspx");            //给VIP 初始化一个值            vip.Name="游客";            vip.Count = 1;            vip.EndTime = System.DateTime.Now.ToString("yyyy-MM-dd");        }        vip= (Web.Mod.VIP)Session["user"];    }
------解决方案--------------------------------------------------------
C# code
private Web.Mod.VIP vip;public Web.Mod.VIP VipInfo{   set { vip = value; }   get { return vip; }}protected void Page_Load(object sender, EventArgs e)    {        if (Session["user"] == null)        {            PageBase.alert(Page, "登陆超时,请重新登陆", "/VIP/Login.aspx");            return;        }        VipInfo= (Web.Mod.VIP)Session["user"];    }
------解决方案--------------------------------------------------------
探讨
对啊,如果为null的话,前台是读取不到值的,当然报错啦。

你需要首先处理一下

C# code

public Web.Mod.VIP vip;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
……
  相关解决方案