ASHX中获取session值(非分布式Session)
2018-06-22 07:35:14来源:未知 阅读 ()
上礼拜刚传了一次,这周再传就有点忘记了,修修改改运行了好几次,开的博客终于派上用处了,就用这个来开个篇吧,希望以后越来越好,问题越来越精辟高端,哈哈。
在ashx中使用session个时,必须使用context.Session["ID"],直接是session无法传值;其次,要添加引用:using System.Web.SessionState;
最后,要继承接口:public class ASHX页面名称 : IHttpHandler, IRequiresSessionState ,即可成功传值。
既然写了ASHX,顺便把前后台的传值也一起记录一下,这个是抱了一天大腿才搞定的,当初没好好学JS,现在被自己坑啊……
------------------------------16.11.4更新------------------------------
今天又要用到ashx传参时,发现要传两个参数,故再记录一下有两个参数的方法。
前台:
//传递单个参数
<script src="../JS/jquery-1.9.1.js" type="text/javascript"></script> <script type="text/javascript" src="../JS/base64.js"></script> <script type="text/javascript" src="../JS/jquery.min.js"></script> <script type="text/javascript"> var b = new Base64(); var Urlcs = b.decode(window.location.search); //获取解码后的URL参数值 var array; $.ajax({ type: "POST", dataType: "Text", url: "../Urltext.ashx", //自定义的ASHX页面名称(注意路径是否正确,当初因为这个路径我折腾了好久,后来才发现是路径不对导致无法传值) data: { Message: Urlcs }, //传值到后台 success: function (optname) { document.getElementById('Label1').innerHTML = optname;} //后台传过来的值,并显示在Label1中 } }); </script>
//传递两个参数,改动部分从“success:function(data)”开始 <script src="../JS/jquery-1.9.1.js" type="text/javascript"></script> <script type="text/javascript" src="../JS/base64.js"></script> <script type="text/javascript" src="../JS/jquery.min.js"></script> <script type="text/javascript"> var b = new Base64(); var Urlcs = b.decode(window.location.search); //获取解码后的URL参数值 var array; $.ajax({ type: "POST", dataType: "Text", url: "../Urltext.ashx", //自定义的ASHX页面名称(注意路径是否正确,当初因为这个路径我折腾了好久,后来才发现是路径不对导致无法传值) data: { Message: Urlcs }, //传值到后台 success:function(data){ array=data.split("|"); document.getElementById('Label').innerHTML=array[0]; //这个就是optname document.getElementById('Label2').innerHTML=array[1]; //这个就是usercode } }); </script>
后台(ashx页面):
using System; using System.Web; using System.Web.SessionState; //注意要添加引用 public class Urltext : IHttpHandler, IRequiresSessionState { //此处注意要继承接口 public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; //前台传到后台获取参数 string urlmsg = context.Request["Message"]; //获取到前台传回的Message的参数 //后台传给前台的参数 string optname = "测试前后台值传递";
string usercode="需要传递的账号"; //新增参数 context.Response.Write(optname+"|"+usercode);//传递两个参数
context.Response.Write(optname); //将optname的值传到前台(传递一个参数)
// 用session记录ID从而方便在其他页面获取,这个只是一个简单的session值传递
context.Session["id"] = usercode;
//我之前没有考虑过多个服务器的情况,若有分布式Session值传递,请上三楼传送门
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP session实现购物车功能 2020-03-23
- 用继承方法实现页面判断session的方法 2020-03-10
- 详解.net mvc session失效问题 2020-02-21
- asp.net获取当前页面URL的方法 2020-01-20
- 详解ABP框架中Session功能的使用方法 2020-01-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash