.net Ajax与后台一般处理程序(ashx) 交互

简介:     本文主要实现无动态刷新查询后台数据功能,主要用到ajax+ashx+sqlserver进行交互.首先需要引用Jquery: html脚本:前台通过一个事件来调用ashx: $(function () { $("#tb_corpName").

    本文主要实现无动态刷新查询后台数据功能,主要用到ajax+ashx+sqlserver进行交互.

首先需要引用Jquery:

 <script language="javascript" type="text/javascript" src="../js/jquery.js">

html脚本:

<asp:TextBox ID="tb_corpName" runat="server" MaxLength="100" Width="369px"></asp:TextBox>

前台通过一个事件来调用ashx:

<script type="text/javascript">
    $(function () {
        $("#tb_corpName").blur(function () {           //鼠标失去焦点事件
            var corpName = $("#tb_corpName").val();     
            $.ajax({        
                type: "post",                           //提交方式     
                url: "/ashx/FZGpyShowData.ashx",        //一般处理程序的路径
                data: { corpName: corpName },           //向后台传入的值
                dataType: "json",                       //返回值格式
                success: function (data) {              //返回成功后将要做的事,这里是返回一个表
                    $("#tb_CreditCode").val(data[0].CreditCode);    
                    $("#tb_corpCode").val(data[0].CorpCode);
                    $("#tb_linkTel").val(data[0].LinkPhone);

                    $("#corpProvince option[text='" + data[0].StateName + "']").attr("selected", true);
                    showCity();
                    $("#corpCity option[text='" + data[0].AdminAreaName + "']").attr("selected", true); 

                    $("#tb_address").val(data[0].Address);
                    $("#tb_linkMan").val(data[0].LinkMan);
                    $("#tb_Mobile").val(data[0].LinkMobile);
                }
            });
        })
    })
</script>

后台来接收前台传过来的值,对其进行操作:

     public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string corpName = context.Request["corpName"].Trim().ToString();      //接收前台传过来的参数
            if (corpName != "")
            {
                string sql = @"select top 1 CorpName,CreditCode,CorpCode,LinkPhone,StateName,AdminAreaName,LinkMan,LinkMobile,Address from tbProductOrder as a 
                                        inner join tbStateDic as b on a.StateNum = b.StateNum
                                        inner join tbAdminAreaClass on a.CityNum = AdminAreaClassID
                                        where CorpName =@CorpName order by CorpName";
                SqlParameter[] par = new SqlParameter[1];
                par[0] = new SqlParameter("@CorpName", corpName);
                DataSet ds = DBHerpler.Load(sql, par); 
                string json = SerializerHelper.ToJsonString(ds.Tables[0]);    //返回json类型的数据
                context.Response.Write(json);                      
                context.Response.End(); 
            } 
        }

SerializerHelper类的定义:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Xml.Serialization;
using Newtonsoft.Json;

/// <summary>
/// SerializerHelper 的摘要说明
/// </summary>
public static class SerializerHelper
{
    /// <summary>
    /// 反序列化XML文件
    /// </summary>
    public static T LoadFromXmlFile<T>(string filepath) where T : class
    {
        using (FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            return (T)serializer.Deserialize(stream);
        }
    }

    /// <summary>
    /// 反序列化XML字符串
    /// </summary>
    public static T LoadFromXmlString<T>(string xml) where T : class
    {
        XmlSerializer serializer = new XmlSerializer(typeof(T));
        byte[] bytes = Encoding.UTF8.GetBytes(xml);

        using (MemoryStream stream = new MemoryStream(bytes))
        {
            return (T)serializer.Deserialize(stream);
        }
    }

    /// <summary>
    /// 序列化XML对象
    /// </summary>
    public static string SaveToXmlString<T>(T entity) where T : class
    {
        using (MemoryStream stream = new MemoryStream())
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            serializer.Serialize(stream, entity);
            return Encoding.UTF8.GetString(stream.ToArray());
        }
    }

    /// <summary>
    /// 序列化Json对象
    /// </summary>
    public static string ToJsonString(object obj)
    {
        return ToJsonString<object>(obj);
    }

    /// <summary>
    /// 序列化Json对象
    /// </summary>
    public static string ToJsonString<T>(T obj) where T : class
    {
        string text = JsonConvert.SerializeObject(obj);
        return text;
    }

    /// <summary>
    /// 反序列化Json字符串
    /// </summary>
    public static T ToJsonObject<T>(string text) where T : class
    {
        T obj = (T)JsonConvert.DeserializeObject(text, typeof(T));
        return obj;
    }
}

 

如果向后台传入多个参数在data里面用逗号分割可写多个参数:

    data: { corpName: corpName , corpName2: corpName2} 

目录
相关文章
|
2月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
89 2
|
13天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
29 1
|
1月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
47 1
|
1月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
43 3
|
3月前
|
XML 存储 前端开发
后端程序员的前后端交互核心-Ajax
后端程序员的前后端交互核心-Ajax
54 6
后端程序员的前后端交互核心-Ajax
|
3月前
|
前端开发 JavaScript Java
Ajax进行异步交互:提升Java Web应用的用户体验
Ajax 技术允许在不重载整个页面的情况下与服务器异步交换数据,通过局部更新页面内容,极大提升了 Java Web 应用的响应速度和用户体验。本文介绍 Ajax 的基本原理及其实现方式,包括使用 XMLHttpRequest 对象发送请求、处理响应数据,并在 Java Web 应用中集成 Ajax。此外,还探讨了 Ajax 如何通过减少页面刷新、实时数据更新等功能改善用户体验。
73 3
|
3月前
|
XML JSON 前端开发
JSON与AJAX:网页交互的利器
JSON与AJAX:网页交互的利器
37 0
|
4月前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
【7月更文挑战第15天】Python后端(Django/Flask)与前端通过AJAX或Fetch API实现异步交互,提升Web应用体验。Python提供强大的后端支持,AJAX用于不刷新页面的数据交换,Fetch API作为现代标准,基于Promise简化HTTP请求。结合两者,构建高效、流畅的交互系统,优化响应速度和用户体验,开启Web开发新篇章。
82 5
|
4月前
|
前端开发 JavaScript API
惊天揭秘!AJAX与Fetch API如何让你的前后端交互秒变‘神级操作’!
【7月更文挑战第15天】在Web开发中,AJAX和Fetch API革新了前后端交互,告别了表单提交带来的页面刷新。AJAX利用XMLHttpRequest实现部分页面更新,开启无刷新时代;Fetch API作为现代替代,以其简洁和Promise支持简化异步操作。从AJAX的先驱地位到Fetch API的进化,两者提升了Web应用的性能和用户体验,成为现代开发的必备技能。
50 2
|
4月前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
【7月更文挑战第14天】在Web开发中,AJAX和Fetch API扮演着关键角色,用于前后端异步通信。AJAX通过XMLHttpRequest实现页面局部更新,但回调模式和复杂API有一定局限。Fetch API作为现代替代,利用Promise简化异步处理,提供更丰富功能和错误处理。Python后端如Flask、Django支持这些交互,助力构建高性能应用。从AJAX到Fetch API的进步,结合Python,提升了开发效率和用户体验。
40 0