当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪ASP.NET将Session保存到数据库中的方法       几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤: 1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为 C:\WINDOWS\Micro.........
    ▪如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)       首先,我们要在前台引入json的脚本,以便于把js对象序列化 <script type="text/javascript" src="/js/jquery.json-2.4.min.js"></script> 然后我们在前台声明一个类,将你要保存的值放到类里面,最后序.........
    ▪微软ajax库的使用方法(ajax.ajaxMethod)       用ajax.ajaxMethod需要做四件事 1:webCofig中 <httpHandlers>加上 <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>接点 2:在CS程序中加上 代码如下:protected void Page_Load(object sender, Even.........

[1]ASP.NET将Session保存到数据库中的方法
    来源: 互联网  发布时间: 2013-11-30

几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤:

1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -ssadd -sstype c
 -d sd -E

该命令是以windows验证方式,添加了sd数据库保存session数据。

2.需要修改ASP.NET web.config文件中的SessionState结点,该结点位于<system.web>下

代码如下:

    <sessionState mode="SQLServer" allowCustomSqlDatabase="true"
                  sqlConnectionString="server=.;uid=sa;password=;initial catalog=sd"
                  cookieless="false"
                  timeout="20">
    </sessionState>

这样一来,Session数据就不再是依赖于IIS进程而是保存到数据库中。可以打开sd数据库会有两个表分别为ASPStateTempSessions、ASPStateTempApplications。

    
[2]如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
    来源: 互联网  发布时间: 2013-11-30

首先,我们要在前台引入json的脚本,以便于把js对象序列化

<script type="text/javascript" src="/js/jquery.json-2.4.min.js"></script>

然后我们在前台声明一个类,将你要保存的值放到类里面,最后序列化

代码如下:

function Save() {
            var examId = '<%=ExamId %>';
            var yearTerm = $("#<%=DDLYearTerm.ClientID %>").val();
            var examType = $("#<%=DDLExamType.ClientID %>").val();
            var examDate = $("#ExamDate").val();
            var examName = $("#ExamName").val();

            var exam = {};
            exam["ExamId"] = examId;
            exam["YearTerm"] = yearTerm;
            exam["ExamType"] = examType;
            exam["ExamDate"] = examDate;
            exam["ExamName"] = examName;
            var json = $.toJSON(exam);
            var Result = AjaxController.EditExam(json).value;
            if (Result == "Success")
            {
                alert("保存成功");
                parent.$.fancybox.close();
            }
            else
            {
                alert(Result);
            }
        }

然后我们在后台,进行反序列化,并使用值.因为我们使用ajax所以要在后台的方法上加上[Ajax.AjaxMethod]特性,并且在你前台所在页面的cs里面也要加上Ajax的注册.具体使用看

微软 ajax 库 的使用方法( ajax.ajaxMethod) http://www./article/40764.htm

代码如下:

protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Youjiao.xxt.BLL.Controller.AjaxController));
            if (!IsPostBack)
            {
                Databind();
            }
        }

代码如下:

[Ajax.AjaxMethod]
        public string EditExam(string value)
        {
            string Result = "";
            try
            {
                if (HttpContext.Current.Request.IsAuthenticated)
                {
                    EditExam editExam = JsonSerializeHelper.DeserializeFromJson<EditExam>(value);
                    ExamController eController = new ExamController();
                    eController.EditExam(editExam);
                    Result = "Success";
                }
                else
                {
                    Result = "会话无效,请重登录!";
                }
            }
            catch (Exception ex)
            {
                Result = ex.Message;
            }
            return Result;
        }

图片:

代码如下:

[Serializable]
    public class EditExam
    {
        public string ExamId { get; set; }
        public string YearTerm { get; set; }
        public string ExamType { get; set; }
        public string ExamDate { get; set; }
        public string ExamName { get; set; }
    }

这样就可以很好的避免在前台js里面传入大量的参数,后台也可以直接反序列化为类来点出成员的值了


    
[3]微软ajax库的使用方法(ajax.ajaxMethod)
    来源: 互联网  发布时间: 2013-11-30

用ajax.ajaxMethod需要做四件事

1:webCofig中 <httpHandlers>加上 <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>接点

2:在CS程序中加上

代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        Ajax.Utility.RegisterTypeForAjax(typeof(NewsDrop));//NewsDrop是这个CS文件的类名
    }

3:方法前加上[Ajax.AjaxMethod()]

  [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]

4:ASPX的JAVASCRIPT中调用时加上类名

使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法,做一些JS无法做到的操作,如查询数据库。使用AjaxMethod要满足一下几点:

1。如果还没有ajax.dll文件,就先下载一个来

2。将ajax.dll添加到项目引用中:在VS的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定

3。webCofig中<httpHandlers>加上<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>节点

如果是IIS7,则需要在<system.webServer></system.webServer>里加上<add name="ajax"  verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />

2:在CS程序中加上

代码如下:

protected void Page_Load(objectsender,EventArgse)
{
     Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是这个CS文件的类名
}

3:编写CS方法,方法前加上[Ajax.AjaxMethod()],

如果要使AjaxMethod里面能调用session,写成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)] ,

如:

代码如下:

[Ajax.AjaxMethod()]
public string GetAddress(string UserID)
{
string Address="";
//do somthing to get the address here
return Address;
}

注意方法要写成public,否则在JS里调用的时候会提示“不支持此属性或方法”

4。确保页面中有<form runat="server"></form>标签。

5。ASPX的JAVASCRIPT中调用时加上类名 ,如:

var address = ClassName.GetAddress('123').value;


    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
Web服务器/前端 iis7站长之家
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3