if (Session["user_name_gly"] == null)
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
}以上代码执行没问题
=============================
如果改成以下代码,即
if (Session["user_name_gly"] == null)
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
}
Label1.Text = Session["user_name_gly"].ToString();会提示:Session["user_name_gly"].ToString()未将对象引用到实例。为什么?
if (Session["user_name_gly"] == null)
{
Response.Redirect("login.aspx");
}
Label1.Text = Session["user_name_gly"].ToString();
===========================
是能正常执行的,即判断Session["user_name_gly"] == null后就跳转到login.aspx页面了,
即不往下执行了。
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
=================
为什么这个代码也是同样地
判断Session["user_name_gly"] == null后就执行关闭页面,并跳转到login.aspx页面,
但它为什么还会继续往下执行呢?请教高手指点一二。
怎么可能,这里根本就没有判断session的语句,你是不是没有刷新!
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script); Response.Redirect("login.aspx");
}
=====================
等等我试试这个如何。
而js是在客户端,可以边执行边返回结果if (Session["user_name_gly"] == null)
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
}
else
{
Label1.Text = Session["user_name_gly"].ToString();}
加个else就好了啊
if (Session["user_name_gly"] == null)
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
return;
}
Label1.Text = Session["user_name_gly"].ToString();
加上个ruturn,试试。
这个我也知道的,但目前我的这个是封装起来的,
public static void CheckSession(Page page, string SessionName)
{
if (HttpContext.Current.Session[SessionName] == null)
{
string script = " <script language='javascript'>window.open('ad0_login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
page.ClientScript.RegisterClientScriptBlock(page.GetType(), "CloseWindow", script);
}
}
-----------
protected void Page_Load(object sender, EventArgs e)
{
comms.CheckSession(this.Page, "user_name_gly");
Label1.Text = Session["user_name_gly"].ToString();
//接下来有很大需要处理的}
==============
不知怎么加在else里面?
在这个后面加一个Response.End();不就OK了吗
2:像ls说的,Response.End()直接停止该页执行,引发EndRequest
3:Label1.Text = Session["user_name_gly"]==null?"":Session["user_name_gly"].ToString();
{
string script = " <script language='javascript'>window.open('login.aspx');" +
"window.parent.opener = null;window.parent.open('','_self');window.parent.close(); window.close(); </script>";
Response.Write(script);
}
Label1.Text = Session["user_name_gly"].ToString();
------
你输出的是客户端脚本啊,执行肯定在c#代码之后
既然了Session["user_name_gly"] == null
那 Session["user_name_gly"].ToString();肯定要出错了