背景:session 不能在asp与aspx中直接传递。
关键词: Session Form Request globalization appSettings url传递
解决的问题:本文解决session 在asp 和aspx间传递问题, 中文Session问题 , 变量通过url传递问题
要点:
1) 变量fname用于通过url传递举例;
2) Session("username")="中文sdsd中.俄" 用于讲解 session 问题。
3)session 是被转换成Form 形式传递到aspx的
若要让例子运行请自行创建工程我的是 AsptoAspxSession,若名字不一样你得在文件对路径、类名和命名空间稍做修改。
共有3个文件 a0.asp----> a.asp---->b.aspx
a.asp 是把session 转换成form 传递的关键代码
注意为了传递中文需要修改 web.config 文件中的globalization 改为:culture="zh-CN" uiCulture="zh-CN" requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"
其他三个文件是:
<!--a0.asp-->
<% Session("username")="中文sdsd中.俄" %>
<% fname="通过url传递的参数" %>
<htm>
<head>
<title></title>
</head>
<body>
<a target =_blank href=a.asp?fname=<%=fname %>><%=fname %></a>
<br>
<br>
Session :
<BR>
<%= Session("username")%>
</body>
</htm>
*******************************************************
<!--a.asp-->
<%
function f()
dim fname1
fname1=request("fname")
Response.Write("<form name=t id=t action=http://127.0.0.1/AsptoAspxSession/b.aspx?fname="+fname1+" method=post >")
Response.Write("<input type=hidden name=username" )
Response.Write( " value=" & Session("username") & "" >")
Response.Write("</form>")
Response.Write("<script>t.submit();</script>")
end function
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<% call f()%>
</body>
</html>
***************************************************
//b.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AsptoAspxSession
{
///
/// b 的摘要说明。
///
public class b : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//只有一下这几行代码是我写的
string fname=Request["fname"].ToString();
Response.Write(fname);
string username=Request["username"];
Response.Write("
");
Response.Write(username);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
关键词: Session Form Request globalization appSettings url传递
解决的问题:本文解决session 在asp 和aspx间传递问题, 中文Session问题 , 变量通过url传递问题
要点:
1) 变量fname用于通过url传递举例;
2) Session("username")="中文sdsd中.俄" 用于讲解 session 问题。
3)session 是被转换成Form 形式传递到aspx的
若要让例子运行请自行创建工程我的是 AsptoAspxSession,若名字不一样你得在文件对路径、类名和命名空间稍做修改。
共有3个文件 a0.asp----> a.asp---->b.aspx
a.asp 是把session 转换成form 传递的关键代码
注意为了传递中文需要修改 web.config 文件中的globalization 改为:culture="zh-CN" uiCulture="zh-CN" requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"
其他三个文件是:
<!--a0.asp-->
<% Session("username")="中文sdsd中.俄" %>
<% fname="通过url传递的参数" %>
<htm>
<head>
<title></title>
</head>
<body>
<a target =_blank href=a.asp?fname=<%=fname %>><%=fname %></a>
<br>
<br>
Session :
<BR>
<%= Session("username")%>
</body>
</htm>
*******************************************************
<!--a.asp-->
<%
function f()
dim fname1
fname1=request("fname")
Response.Write("<form name=t id=t action=http://127.0.0.1/AsptoAspxSession/b.aspx?fname="+fname1+" method=post >")
Response.Write("<input type=hidden name=username" )
Response.Write( " value=" & Session("username") & "" >")
Response.Write("</form>")
Response.Write("<script>t.submit();</script>")
end function
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<% call f()%>
</body>
</html>
***************************************************
//b.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AsptoAspxSession
{
///
/// b 的摘要说明。
///
public class b : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//只有一下这几行代码是我写的
string fname=Request["fname"].ToString();
Response.Write(fname);
string username=Request["username"];
Response.Write("
");
Response.Write(username);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}